站点图标 时光亭

Nginx 301重定向规则

之前一直没有注意301重定向这个问题。
只是直接在Dnspod把www前缀添加A记录到和博客同一个IP地址,然后在Wordpress后台设置地址,再添加www.timeting.com这个网址到Nginx的server_name里。
这么做之后,很长一段时间都很正常,没有发现带www前缀的网址被Google或者百度收录。
不过,在昨天查看收录情况的时候,发现百度收录的页面多了近一倍。
本来只被百度收录了40个页面,突然增加到了79个,这对于一个站长来说,无疑会感到欣喜。
但是,定睛一看,发现百度收录增加的网址都是带有www前缀。
不知是因为这几天360和百度大战,导致百度抽风,或是百度本来就这样;Google仍然一切正常。
不过这也提醒了我,还是得做好301重定向。

什么是301重定向?

301重定向(301 redirect)也叫301跳转、301转向。当浏览者或搜索引擎对一个网站发出浏览请求时,网站服务器会返回http数据流,其中的头信息(header)里包含了某个http状态码,301就是http状态码的一种。它代表本网页永久性转移(Permanently Moved)到了另一个地址,是网页更改地址后对搜索引擎友好的最好方法。

为什么要做301重定向?

一般来说,网站会将带www和不带www的域名都指向同一个网页,
如果你没有做301重定向的话,搜索引擎可能会同时收录带www的和不带www的域名,这样会使得权重和PR值分散;
使用301重定向可以使得URL统一,使权重和PR值集中。
还有就是,更换了域名,想将之前的收录情况、权重和PR值都转移到新域名,也可以使用301重定向。

Nginx的301重定向规则

用Google搜索了一圈,发现网上普遍存在两种Nginx 301重定向规则,但是试用后发现有一种用了以后会造成循环重定向,不知是版本问题或是其它问题。
而且都很少有详细说明如何使用,这对于新手来说可能会感到困惑。
现在我来详细说说方法。
首先,你必须知道你想要重定向的域名配置文件,
例如:lnmp一键安装包的配置文件就是/usr/local/nginx/conf/vhost/域名.conf
然后,修改配置文件,可以下载到本地修改;也可以登录SSH,使用vi修改。
一、使用vi修改
用SSH登录后,执行

vi /usr/local/nginx/conf/vhost/timeting.conf

当然,后面的配置名要修改成你自己的。
执行后,按i进入编辑模式,找到类似于

        server_name     timeting.com www.timeting.com; 
        listen          80;

如果你想将带www的域名重定向到不带www的域名,
例如:我想将www.timeting.com重定向到timeting.com,可以删除上面www.timeting.com;
然后在文件最后加上

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

再按ESC键退出编辑模式
输入:wq
然后按Enter保存并退出。

二、下载到本地修改
其实方法和上面差不多,
首先,下载配置文件到本地,用编辑器打开(最好别用记事本)。
按上面的方法修改,然后保存并上传到服务器。

修改完成后,执行

nginx -t

如果返回以下内容就没问题,如果不是,那应该是你哪个步骤弄错了……

nginx: the configuration file /usr/local/nginx/conf/nginx.conf syntax is ok
nginx: configuration file /usr/local/nginx/conf/nginx.conf test is successful

上面的/usr/local/nginx/conf/nginx.conf为nginx配置文件路径。

最后执行以下命令重启nginx。

service nginx restart

301重定向检测

国内网站:http://www.ranknow.cn/tools/redirectcheck
301重定向前:

301重定向后:

退出移动版