NGINX环境下对站点做301重定向



1:某具体的域名301到另一个域名

:!: 如果您确定需要做301重定向的,那么请务必自行创建新conf文件,而不要修改默认的conf文件,以免您其它站点调用而产生错误。 nginx中的301规则

if ($host = 'diahosting.com' ) {
rewrite ^/(.*)$ http://www.diahosting.com/$1 permanent;
}

注意,301规则需要放在conf文件的最上方

案例

假设diahosting.com站点是zencart程序,现要将diahosting.com 301重定向到www.diahosting.com

首先要创建新的conf文件


然后在 虚拟主机 => 对应的站点“编辑” => rewrite规则的下拉框中进行重新选择conf文件。






2:全匹配方式将域名301到另一个域名

使用以下规则来全匹配所有域名,该规则可以同时被多个站点调用,互不影响

  • a:将所有域名都301到带www的域名
    if ($host !~* www\.(.*)) {
    rewrite ^(.*)$  http://www.$host$1 permanent;
    }
  • b:将所有带www的域名都301到不带www的域名
    if ($host ~* www\.(.*)) {
    set $host $1;
    rewrite ^(.*)$  http://$host$1 permanent;
    }