首先解析域名
具体的代码如下:
1 2 3 |
listen 80; server_name zzstudio.net www.zzstudio.net; root /hapishop/wwwroot/zzstudio; |
重定向方法
方法一:判断nginx核心变量host(老版本是http_host),适用于绑定多个域名,都相同用途的重定向
1 2 3 4 5 6 7 8 9 |
server { listen 80; server_name zzstudio.net www.zzstudio.net; root /hapishop/wwwroot/zzstudio; if ($host != 'www.zzstudio.net' ) { rewrite ^/(.*)$ http://www.zzstudio.net/$1 permanent; } ... } |
方法二:适用于多个域名,但有域名有其他用途不需要重定向的情况
1 2 3 4 5 6 7 8 9 |
server { listen 80; server_name zzstudio.net www.zzstudio.net blog.zzstudio.net; root /hapishop/wwwroot/zzstudio; if ($host = 'zzstudio.net' ) { rewrite ^/(.*)$ http://www.zzstudio.net/$1 permanent; } ... } |
上面的域名blog.zzstudio.net为频道域名,不需要进行重定向。
Nginx的 Rewrite Flags 的含义:
- last – 基本上都用这个Flag。
- break – 中止Rewirte,不在继续匹配
- redirect – 返回临时重定向的HTTP状态302
- permanent – 返回永久重定向的HTTP状态301
测试是否定向成功
1 |
/usr/local/nginx/sbin/nginx -t |
如果提示如下信息说明成功
1 2 |
nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful |
重启nginx即可
1 |
/usr/local/nginx/sbin/nginx -s reload |
如果您使用的Apache作为应用服务器,具体配置方法如下
修改#.htaccess文件
1 2 3 |
RewriteEngine On RewriteCond %{HTTP_HOST} !^www\.yourdomain\.com RewriteRule (.*) http://www.yourdomain.com$1 [R=301,L] |