NGINX域名301重定向的正确配置方案

发布于 2017-05-18 作者 [重庆SEO]

通常针对域名做301重定向主要是为了SEO!比如将不带www的域名通过301重定向到www的域名下。

NGINX下的301方式主要有2种方案,

方案一:一个Server

server {
    listen       80;
    server_name  www.seonoco.com  seonoco.com;
    if ($http_host = seonoco.com) {
        rewrite  (.*)  http://www.seonoco.com$1;
    }
    ...
}

方案二:两个Server

server {
    listen       80;
    server_name  seonoco.com;
    return       301 http://www.seonoco.com$request_uri;
}

server {
    listen       80;
    server_name  www.seonoco.com;
    ...
}

根据NGINX的官方文档介绍,方案一这种做法是错的,复杂而且低效。

http://nginx.org/en/docs/http/converting_rewrite_rules.html

其实即使是我在知道这个情况后,我其实我很长一段时间都是用的方案一,因为我觉得似乎同一个Server的配置可读性似乎更高,另外好像也没低效到哪里去。

好吧,我决定以后还是用官方推荐的方案!