同一台nginx服务器上面配置了多个网站,有的网站使用了SSL(https)有的没有使用;
通过https协议访问没有使用ssl的网站时,浏览器一般会有风险提示,但是如果我们选择接受风险继续打开时,会发现网站可以正常打开,但是显示的内容确实 某一个使用了SSL的网站内容;
解决办法如下 打开网站配置文件 如下:
1 2 3 4 5 6 7 8 9 10 11 12 13 |
server { listen 80; server_name www.xxxx.com; index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/www.xxxx.com/public; #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 #error_page 404/404.html; #SSL-END 以下省略。。。。 } |
添加如下代码即可
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 |
server { listen 80; listen 443; server_name www.xxxxxx.com; index index.php index.html index.htm default.php default.htm default.html; root /www/wwwroot/www.xxxx.com/public; #HTTPS_TO_HTTP_START if ($server_port ~ 443){ rewrite ^(/.*)$ http://$host$1 permanent; } #HTTPS_TO_HTTP_END #SSL-START SSL相关配置,请勿删除或修改下一行带注释的404规则 #error_page 404/404.html; #SSL-END 以下省略。。。。 } |
具体操作 就是让没有添加SSL的网站也监听443端口;然后进行判断:如果是https (443端口)访问就跳转到http;
下方链接是另一位老铁的解决办法和我的思路是一样的,各位可以参考
nginx服务器没有配置SSL的http访问https时,会跳转访问其他https的网站 – hepeacer – 博客园
from:https://blog.csdn.net/weixin_42273457/article/details/123072500