当前位置: > Linux服务器 > nginx >

Nginx如何配置301永久重定向

时间:2015-01-10 20:04来源:linux.it.net.cn 作者:IT

OutOfMemory.CN在上线聚客时发现google收录了一些本来该是在主域名outofmemory.cn下的网址,却收录到了ju.outofmemory.cn域名下了,最好的办法是在nginx配置中将这些地址重定向到主域名。

nginx中可以通过redirect配合正则表达式来配置重定向,如下是ju.outofmemory.cn域名的重定向配置:


server {
        #listen   80; ## listen for ipv4; this line is default and implied
        #listen   [::]:80 default ipv6only=on; ## listen for ipv6
        listen  80;
        server_name ju.outofmemory.cn;

        rewrite ^(/(user|code-snippet)/.*) http://outofmemory.cn$1 permanent;
        rewrite ^(/tag/p\d+) http://outofmemory.cn$1 permanent;

       #其他和重定向无关的配置省略了
}

上面配置了两种重定向,一种是以/user或者/code-snippet开头的重定向到http://outofmemory.cn下,并将路径通过$1传过去。第二种重定向是符合/tag/p数字的路径也做同样的重定向处理。

通过nginx的301重定向还可以做整站的重定向,这在切换域名时很有用,如下是相关的配置:

假定某网站之前使用的域名是www.A.com要将此域名下的内容完全重定向到www.B.com下


server {
     server_name www.A.com ;
    rewrite ^(.*) http://www.B.com$1 permanent;
}

另外有时候还会遇到将A.com域名下的内容全部重定向到带www的域名下,配置也很简单:


server {
    server_name A.com;
    rewrite ^/(.*) http://www.A.com/$1 permanent;
} (责任编辑:IT)
------分隔线----------------------------
栏目列表
推荐内容