nginx 配置域名301转向

{app.params.name}} {app.params.name}} {app.params.name}}

嗯,今晚记录下,由于最近观察google 分析工具发现我网站存在www.gowhich.com和gowhich.com同时存在的一些问题,建议将其中的一个做301跳转,这个还是超级简单的啦,不过还是记录一下吧,方便记性不好的。

绑定对应的域名当然没有问题了。

server {
    listen 80;
    server_name gowhich.com www.gowhich.com *.gowhich.com ;  
}

上面主要展示了主要的部分,后面还是要根据你自己的需要去配置。

server {
    listen 80;
    server_name gowhich.com www.gowhich.com *.gowhich.com ;    
    if ($host != 'www.gowhich.com') {
      rewrite ^/(.*)$ http://www.gowhich.com/$1 permanent;    
    }
}

或者可以使用等于的判断

server {
    listen 80;
    server_name gowhich.com www.gowhich.com *.gowhich.com ;    
    if ($host = 'gowhich.com') {
      rewrite ^/(.*)$ http://www.gowhich.com/$1 permanent;    
    }
}

第二个更有针对性吧。


这里有几个问题需要注意一下:

  1. 上述配置文件的if语句与括号必须以一个空格隔开,否则Nginx会报nginx: [emerg] unknown directive “if($host” in…错误。

  2. Nginx的条件判断不等于是!=,等于是=,注意这里的等于只有一个等于号,如果写成==,则Nginx会报nginx: [emerg] unexpected “==” in condition in…错误。

  3. 301永久转向配置成功后,浏览器可能会有记忆效应,比如说IE。所以一旦配置并利用浏览器访问过页面,那么你更改了301转向配置后,这个页面可能依旧是上次的转向,建议清除浏览器缓存,或者尝试访问其他页面,也可以在url的?问号后面加上一些随机的参数,避免浏览器的缓存记忆效应。


配置完成后,可以使用nginx -s reload命令进行平滑的更新配置(不重启Nginx)。



版权声明

durban 创作并维护的 Gowhich 博客采用 创作共用保留署名-非商业-禁止演绎4.0国际许可证。

本文首发于 Gowhich 博客( https://www.gowhich.com ),版权所有,侵权必究。

本文永久链接: https://www.gowhich.com/blog/750

comments powered by Disqus