关于nginx的301跳转设置

最近打算把博客放到 blog.ixsh.com 这个二级域名上,为了保留原来的收录和权重需要在nginx上做个301跳转。

官方不建议使用if判断语句和rewrite跳转语句,推荐的语句是:

return 301 https://$server_name$request_uri;

我们先打开域名配置文件改动如下


      1 server {
      2         listen 80;
      3         server_name ixsh.com www.ixsh.com;
      4         return 301 https://news.ixsh.com$request_uri;
      5 }
      6 
      7 server {
      8         listen 443 ssl;
      9         server_name ixsh.com www.ixsh.com;
     10         return 301 https://news.ixsh.com$request_uri;

如上需要把http和https全部做跳转。

关于主域名是否包含www:

www其实是二级域名,约定俗成的成了网站的主域名,

而不含www的域名目前也越来越多的成了主域名。主要是因为移动互联网的发展,和域名后缀的多样化。

不管你用那个作为主域名,推荐只使用其中一个,对另外一个做301跳转。这主要是为了权重的集中。避免用户有不必要的麻烦。

在https的跳转设置中要注意每个server都要包含证书路径。

关于HTTP2

如果网站支持ssl,而且nginx版本不是很老的版本,我们都可以开启http2,开启很简单,直接修改如下即可。

listen 443 ssl http2;

301跳转一段时间之后,新的域名会被迅速收录。不久之后我们就可以用主域名做其他的事情了。

最后谈谈nginx的目录跳转:

如果你修改了目录的路径,就需要用rewrite来做目录的301跳转了,否则收录 的网址都被指向404错误页面,会导致搜索引擎降低你的权重,对用户来说也极度不友好。

举个例子:原来的路径是https://www.ixsh.com/mulu/123,现在我改成了https://www.ixsh.com/123.html,那么我们需要在nginx的配置中server中添加如下字段来做跳转

     47         location /mulu {
     48                 rewrite ^/mulu/(.*)/  /$1.html  permanent;
     49         }

发表评论