网站上线最基础的一步就是确立域名如何重定向,如果最优的设置重定向。一方面要确立网站主域,另一方面跳转配置不遗漏并且尽可能减少没必要的跳转。
主域的选择
相信很多人会纠结主域带不带www,有疑惑的可以看之前写到的《多域名解析到同一网站利于排名吗?》,简单的概括一下如果未来不考虑二级域名建站的那么主域就不带www反之则带www。
跳转实现
大多数站点会采用www的主域名,并且现在建议大家使用https技术可以提升网站的安全性,并且对于SEO优化也是有好处的。那么就以域名chateach.com在nginx下实现域名301跳转的配置来实现下。
确认跳转线路
http://chateach.com到https://www.chateach.com
http://www.chateach.com到https://www.chateach.com
https://chateach.com到https://www.chateach.com
综上,实现完整301条转,需要考虑上面3种情况,第一第二种跳转情况可以合并考虑,在不存在其他二级域名情况下,可以简化成http://*.chateach.com到https://www.chateach.com。
nginx跳转配置
server { listen 80; server_name www.chateach.com chateach.com; rewrite ^/(.*)$ http://www.chateach.com/$1 permanent; }
对于http请求都在80端口监听,不管是带不带www的,都通过上述配置全部配置重定向https://www.chateach.com,到这里就完成了一半。
server { listen 443 ssl; server_name www.chateach.com chateach.com; if ($host != 'www.chateach.com') { rewrite ^/(.*)$ https://www.chateach.com/$1 permanent; } }
对于https请求都在443端口监听,与上面的80端口不同的是,多了一层判断。如果访问地址是www.chateach.com,在443端口下就等同于https://www.chateach.com,此种形式不需要进行任何定向跳转,所以需要判断出chateach.com的访问,只有这种情况需要重定向。
做完域名301重定向配置,重起nginx服务之后,一定要挨个检查过去,很多站点都会存在个别情况下的301跳转,对于SEO来说是非常不利的一定要避免。