- 为了随主流,即大多数人的习惯,访问时网站时,域名随时保持带 www 的二级域名
www.taobantech.com
。
- 另外,网站的统计也是基于二级域名
www.taobantech.com
的,同时为了搜索引擎优化,访问 taobantech.com
时需要跳转到 www.taobantech.com
。
- 网站开通了 ssl 证书,需要将
http
强制跳转至 https
。
完整配置内容
script1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40
| # 针对 http 协议,将 @ 记录,即不带 www 的主域名 http://taobantech.com 跳转至带 www 的二级域名 http://www.taobantech.com,域名后面的路径以及参数保持不变 # 如果配置了 htts 协议的跳转,这个server配置可以不要。 server { listen 80; server_name taobantech.com; rewrite ^(.*)$ https://www.$server_name$1 permanent; }
# 如果配置了上面的 http 协议的主域名 http://taobantech.com 跳转至二级域名 https://www.taobantech.com,则下面这个server的配置可以把主域名 taobantech.com 去掉 server { listen 80; server_name www.taobantech.com taobantech.com; rewrite ^(.*)$ https://$host$1 permanent; }
# 以下 server 配置 ssl 协议,注意端口不再是80而是443 server { listen 443; server_name www.taobantech.com taobantech.com; charset utf-8; access_log logs/taobantech.access.log; error_log logs/taobantech.error.log; ssl on; ssl_certificate /usr/local/nginx/cert/2944536_www.taobantech.com.pem; ssl_certificate_key /usr/local/nginx/cert/2944536_www.taobantech.com.key; ssl_session_timeout 5m; ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4; ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_prefer_server_ciphers on;
# 针对 https 协议,将 @ 记录,即不带 www 的主域名 https://taobantech.com 跳转至带 www 的二级域名 https://www.taobantech.com,域名后面的路径以及参数保持不变 if ($host != 'www.taobantech.com') { rewrite ^/(.*)$ https://www.taobantech.com/$1 permanent; }
location / { root /home/utomcat/gitCode/lovesoft/uncleAndyChen/public; index index.html; } }
|
后记
带路径时不会重定向
之前的主域名 http://taobantech.com
跳转至带 www 的二级域名 https://www.taobantech.com
,是在阿里云的域名解析里做的,是一个域名重定向的配置。
域名重定向配置
可以设置301重定向,也可以设置成302重定向
这样配置带来的问题是,只有主页 http://taobantech.com
才会重定向到 https://www.taobantech.com
,带路径的文章如 https://taobantech.com/about/
就不会重定向,而且显示无法访问。
在百度里搜索:site:taobantech.com
,得到的结果,不带 www 的主域名且带路径的文章链接,如 https://taobantech.com/about/
,均无法访问。
解决
修改主域名解析配置为 A 记录,记录值直接指向服务器IP。
域名重定向配置
这样配置之后,https://taobantech.com/about/
这样的链接已经可以正常访问了,但是不利于网站统计和搜索引擎优化(时髦词叫 SEO),所以,还需要通过 Nginx 配置来重定向。
没有开通 ssl 证书的重定向配置
script1 2 3 4 5
| server { listen 80; server_name taobantech.com; rewrite ^(.*)$ https://www.$server_name$1 permanent; }
|
开通了 ssl 证书的重定向配置
修改监听 443 端口的 server 配置,在 location
配置前面加上:
script1 2 3
| if ($host != 'www.taobantech.com') { rewrite ^/(.*)$ https://www.taobantech.com/$1 permanent; }
|
具体可参考上面的完整配置内容。