900字范文,内容丰富有趣,生活中的好帮手!
900字范文 > Nginx 配置 https 后 http 强制跳转到 https 主域名跳转至带 www 的二级域名

Nginx 配置 https 后 http 强制跳转到 https 主域名跳转至带 www 的二级域名

时间:2021-10-23 01:21:11

相关推荐

Nginx 配置 https 后 http 强制跳转到 https 主域名跳转至带 www 的二级域名

为了随主流,即大多数人的习惯,访问时网站时,域名随时保持带 www 的二级域名。另外,网站的统计也是基于二级域名的,同时为了搜索引擎优化,访问时需要跳转到。网站开通了 ssl 证书,需要将http强制跳转至https

完整配置内容

# 针对 http 协议,将 @ 记录,即不带 www 的主域名 跳转至带 www 的二级域名 ,域名后面的路径以及参数保持不变# 如果配置了 htts 协议的跳转,这个server配置可以不要。server {listen 80;server_name ;rewrite ^(.*)$ https://www.$server_name$1 permanent;}# 如果配置了上面的 http 协议的主域名 跳转至二级域名 ,则下面这个server的配置可以把主域名 去掉server {listen 80;server_name ;rewrite ^(.*)$ https://$host$1 permanent;}# 以下 server 配置 ssl 协议,注意端口不再是80而是443 server {listen 443;server_name ;charset utf-8;access_log logs/lovesofttech.access.log;error_log logs/lovesofttech.error.log;ssl on;ssl_certificate /usr/local/nginx/cert/.pem;ssl_certificate_key /usr/local/nginx/cert/.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 的主域名 跳转至带 www 的二级域名 ,域名后面的路径以及参数保持不变if ($host != '') {rewrite ^/(.*)$ /$1 permanent;}location / {root /home/utomcat/gitCode/lovesoft/uncleAndyChen/public;index index.html;}}

后记

带路径时不会重定向

之前的主域名跳转至带 www 的二级域名,是在阿里云的域名解析里做的,是一个域名重定向的配置。

这样配置带来的问题是,只有主页才会重定向到,带路径的文章如/about/就不会重定向,而且显示无法访问。

在百度里搜索:site:,得到的结果,不带 www 的主域名且带路径的文章链接,如/about/,均无法访问。

解决

修改主域名解析配置为 A 记录,记录值直接指向服务器IP。

这样配置之后,/about/这样的链接已经可以正常访问了,但是不利于网站统计和搜索引擎优化(时髦词叫 SEO),所以,还需要通过 Nginx 配置来重定向。

没有开通 ssl 证书的重定向配置

server {listen 80;server_name ;rewrite ^(.*)$ https://www.$server_name$1 permanent;}

开通了 ssl 证书的重定向配置

修改监听 443 端口的 server 配置,在location配置前面加上:

if ($host != '') {rewrite ^/(.*)$ /$1 permanent;}

具体可参考上面的完整配置内容。

关于作者

CSDN博客:/runAndRungithub: /uncleAndyChengitee: /uncleAndyChen

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。