进行了301重定向,把www.sulao.cn和sulao.cn合并,并把之前的域名也一并合并.
有两种实现方法,第一种方法是判断nginx核心变量host(老版本是http_host):
第一种方法:
server { server_name www.sulao.cn sulao.cn; if ($host != 'www.sulao.cn' ) { rewrite ^/(.*)$ https://sulao.cn/$1 permanent; } ... }
第二种方法:
server { if ($host = 'sulao.cn'){ rewrite ^/(.*)$ https://sulao.cn/$1 permanent; } }
这两种方法中, permanent是关键,详细说明见nginx重定向规则说明。
last – 基本上都用这个Flag。
break – 中止Rewirte,不在继续匹配
redirect – 返回临时重定向的HTTP状态302
permanent – 返回永久重定向的HTTP状态301
好了,现在可以检查结果,在站长工具里可以看返回的HTTP头信息:
测试是否定向成功
/usr/local/nginx/sbin/nginx -t
提示:
the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok configuration file /usr/local/nginx/conf/nginx.conf test is successful
测试成功, 重启nginx,输入命令:
/usr/local/nginx/sbin/nginx -s reload
重启之后测试一下~是否成功设定完成! 输入命令:
curl –I sulao.cn
会输出:
HTTP/1.1 301 Moved Permanently Server: nginx/0.7.65 Date: Tue, 03 Aug 2010 01:12:37 GMT Content-Type: text/html Content-Length: 185 Connection: keep-alive Location: https://sulao.cn/
目录重定向
if ( $request_filename ~ html/ ) { rewrite ^ https://sulao.cn/nginx/? permanent; }
目录跳转到新目录
if ( $request_filename ~ nginx/ ) { rewrite ^ http://nginx.sulao.cn/? permanent; }
一个比较复杂的重定向实例:
rewrite ^([^\.]*)/html/2015/(\w+)_([0-9]+)/(.*)$ $1/html/$2/$4 permanent;
将三级目录转向到指定二级目录