陈德馨

AMH+Nginx做301域名重定向设置的方法

1387人参与 |分类: 运维时间|时间:2017年04月02日 22:53

我之前分享过一篇“WDCP做301域名重定向设置的方法”。而最近我把一个网站迁移到了腾讯云,采用了开源主机面板AMH,环境是基于最新的PHP7.13+Nginx。期间遇到一个问题就是需要重新做301重定向设置。301重定向大家肯定不陌生,有时候有需求把某目录整个重定向到一个二级域名,或者不带www的顶级域名请求全部重定向到带www的二级域名。如果是Apache,只需要配置.htaccess就可以了,Nginx不支持,Nginx的重定向是通过”.conf“程序配置文件来实现的。每个环境里面都有一个单独的配置文件。AMH面板的这个文件路径在”/home/wwwroot/环境名称/vhost/“里面,有个”环境名称.conf“文件。经过度娘一番搜索,终于解决了这个问题,所以记录下方法:

打开此文件,找到”server_name 你绑定的域名;“这一行(一般在第四行),在这行下面添加如下代码:

if ($host = 'dexin.xyz' ) {        
    rewrite ^/(.*)$ https://www.dexin.xyz/$1 permanent; 
    }

上面的代码意思就是将不带www的网址301重定向至带www的网址去。上面的"dexin.xyz"是我新收购的一个新后缀顶级域名。这里只是用来演示,不要忘记将其中的"dexin.xyz"替换成你自己的域名。

下面给大家我的完整代码:

server
{
   listen 80;
   server_name www.dexin.xyz; 
   if ($host = 'dexin.xyz' ) {        
    rewrite ^/(.*)$ https://www.dexin.xyz/$1 permanent; 
    }
      index index.html index.htm index.php; 
}

大家只要把上面的域名进行替换,然后重启一下重新加载配置就可以了。

下面是收录的的一些比较实用的Nginx301重定向代码。

顶级域名重定向到www

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

如上配置,所以dexin.com的请求都会重定向到www.chendexin.com,301重定向对SEO很有帮助.这个配置大家用的最多。

www二级域名重定向到顶级域名

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

江湖盛传顶级域名的权重会比www二级域名的权重高,有些seoer会要求运维一定要把www的请求转到顶级域名,和上面的做法相反。

目录重定向

if ( $request_filename ~ yuedushijian/ ) {
 rewrite ^ http://www.chendexin.com/read/? permanent;
 }

目录跳转新域名

if ( $request_filename ~ shipin/ ) {
 rewrite ^ http://v.chendexin.com/? permanent;
 }

来源:陈德馨博客(微信/QQ号:35435164),转载请保留出处和链接!

地址:

必填

选填

选填

◎已有 1 人评论,请发表您的观点。

  
    
1楼筑楼   2017-11-17 09:14:39
你的没有设置Https啊 如果在你网址前面手动输入Https 跳转你的工作室网址
回复