首先说明一下301和302重定向有什么区别 301代表着永久重定向,意思就是这个网址不存在了,告诉浏览器搜索引擎原由的网址已经转向现在的网址了。而302代表着暂时重定向,以后还会回来的。
1. 301跳转设置:
server { listen 80; server_name onephper.com; rewrite ^/(.*) http://www.onephper.com/$1 permanent; access_log off; }
2. 302跳转设置:
server { listen 80; server_name onephper.com; rewrite ^/(.*) http://www.onephper.com/$1 redirect; access_log off; }
3. 将不带www的重定向为带www的
if ($host != 'www.onephper.com'){ rewrite ^/(.*)$ http://www.onephper.com/$1 permanent; }
4. 将url中news地址转向到archives网址
location /news/ { rewrite ^/news/(.*)$ http://www.onephper.com/archives/$1 permanent; }
5. 补充
last – 基本上都用这个Flag。
break – 中止Rewirte,不在继续匹配
redirect – 返回临时重定向的HTTP状态302
permanent – 返回永久重定向的HTTP状态301
6.参考网址
http://blog.sina.com.cn/s/blog_6f2274fb0100vo1b.html(301重定向和302重定向那个利于优化)
http://www.3lian.com/edu/2013/07-01/77550.html(重定向规则)
结束语
本文有任何错误,或有任何疑问,欢迎留言说明。
网友最新评论