什么是301重定向?

页面永久性移走(301重定向)是一种非常重要的“自动转向”技术。网址重定向最为可行的一种办法。当用户或搜索引擎向网站服务器发出浏览请求时,服务器返回的HTTP数据流中头信息(header)中的状态码的一种,表示本网页永久性转移到另一个地址

301重定向有哪些用处

举个栗子:一般我们建站都会将 www.stars.xyz 与 stars.xyz 绑定在同一个网站上,让两个域名都能访问同一个网站,但是这样非常不利于网站优化,301 重定向不仅对用户很重要,而且对于搜索引擎也是很重要,因为我们同时用 www.stars.xyz 与 stars.xyz 进行访问,这样就出现了两个首页,搜索引擎收录的时候,分不清哪一个才是你的主站,会引起搜索引擎的误判,这个时候我们就需要用到 301 重定向来进行处理,优化网页的收录

这里就和大家分享一下301重定向的方法

这里博主用的是linux系统,环境搭建用的是 lnmp 搭建的环境,打开 /usr/local/nginx/conf/vhost 下相应的 .conf 文件(也就是你的网站配置文件),如果我们要将 stars.xyz 重定向到 www.stars.xyz
原代码如下:

server
     {
         listen 80;
         #listen [::]:80;
         server_name www.stars.xyz stars.xyz ;
         index index.html index.htm index.php default.html default.htm default.php;
         root /home/wwwroot/www.stars.xyz;

         include other.conf;
         #error_page 404 /404.html;

         # Deny access to PHP files in specific directory
         #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

         include enable-php.conf;

         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
         {
             expires 30d;
         }

         location ~ .*\.(js|css)?$
         {
             expires 12h;
         }

         location ~ /.well-known
         {
             allow all;
         }

         location ~ /\.
         {
             deny all;
         }

         access_log /home/wwwlogs/www.stars.xyz.log;
     }

这里我们在下面加个 server 段

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

然后将第一段代码里面的 stars.xyz 删了,得到完整代码:

server
     {
         listen 80;
         #listen [::]:80;
         server_name www.stars.xyz ;
         index index.html index.htm index.php default.html default.htm default.php;
         root /home/wwwroot/www.stars.xyz;

         include other.conf;
         #error_page 404 /404.html;

         # Deny access to PHP files in specific directory
         #location ~ /(wp-content|uploads|wp-includes|images)/.*\.php$ { deny all; }

         include enable-php.conf;

         location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
         {
             expires 30d;
         }

         location ~ .*\.(js|css)?$
         {
             expires 12h;
         }

         location ~ /.well-known
         {
             allow all;
         }

         location ~ /\.
         {
             deny all;
         }

         access_log /home/wwwlogs/www.stars.xyz.log;
     }

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

如果是想让 http 强制跳转到 https,把里面的 http 换成 https 就行

然后保存,执行:/etc/init.d/nginx restart 重启生效

来源:https://www.96sir.com/resources/55.html