NGINX设置域名301重定向的两种方法以及目录重定向
- 2015-11-30 09:33:19
- 运维
- 44
- shevechco
进行了301重定向,把www.sulao.cn和sulao.cn合并,并把之前的域名也一并合并.
有两种实现方法,第一种方法是判断nginx核心变量host(老版本是http_host):
第一种方法:
server { server_name www.sulao.cn sulao.cn; if ($host != 'www.sulao.cn' ) { rewrite ^/(.*)$ http://www.sulao.cn/$1 permanent; } ... }
第二种方法:
server { if ($host = 'sulao.cn'){ rewrite ^/(.*)$ http://www.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: http://www.sulao.cn/
目录重定向
if ( $request_filename ~ html/ ) { rewrite ^ http://www.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;
将三级目录转向到指定二级目录
内容版权声明:除非注明,否则皆为本站原创文章。
转载注明出处:http://www.sulao.cn/post/160
相关推荐
- ubuntu22.04编译安装nginx
- flask使用nginx代理以后图片上传和加载问题解决方法
- nginx反向代理http/https、rpc/grpc、ws/wss
- nginx四层负载均衡配置解析以及卡顿问题的处理
- centos7部署k8s多master高可用集群(k8s+containerd+nginx+keepalived)
- k8s部署ingress-nginx
- docker部署keepalived非抢占单播模式
- docker-compose部署nginx反向代理tomcat
- docker-compose编排lnmp(nginx+php+mysql)环境
- docker和docker-compose分别部署nginx