通常针对域名做301重定向主要是为了SEO!比如将不带www的域名通过301重定向到www的域名下。
NGINX下的301方式主要有2种方案,
server {
listen 80;
server_name www.cdsy.xyz cdsy.xyz;
if ($http_host = cdsy.xyz) {
rewrite (.*) http://www.cdsy.xyz$1;
}
...
}
server {
listen 80;
server_name cdsy.xyz;
return 301 http://www.cdsy.xyz$request_uri;
}
server {
listen 80;
server_name www.cdsy.xyz;
...
}
根据NGINX的官方文档介绍,方案一这种做法是错的,复杂而且低效。
http://nginx.org/en/docs/http/converting_rewrite_rules.html
其实即使是我在知道这个情况后,我其实我很长一段时间都是用的方案一,因为我觉得似乎同一个Server的配置可读性似乎更高,另外好像也没低效到哪里去。
好吧,我决定以后还是用官方推荐的方案!