/ 中存储网

Nginx如何配置301永久重定向

2013-08-18 20:36:00 来源:kejihao

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/pd+) 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;

}