将 https 重定向到 http 后出现重定向错误

将 https 重定向到 http 后出现重定向错误

我已将所有 https 请求重定向到 http。您可以在此处看到我在 nginx 配置文件中所做的操作:

*

#redirecting https to http:: 
server {    listen 443 ssl;    
listen [::]:443 ssl;
    server_name example.com www.example.com
        ssl_certificate /etc/nginx/sd.crt;
        ssl_certificate_key /etc/nginx/sd.key;
        ssl_protocols TLSv1 TLSv1.1 TLSv1.2; ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
         rewrite ^(.*)  http://www.example.com$1 permanent; }
#redirecting non-www to www::
server {
        listen 80;
       listen [::]:80;
        server_name example.com;    return       301 http://www.example.com$request_uri; }
#server block
server {
        listen 80;
       listen [::]:80;
        server_name www.example.com;

*

因此,问题在于用户会收到重定向错误,因为浏览器认为我的网站在 https 下仍然可用。如果我删除缓存,我可以访问我的网站,但我如何避免此重定向错误呢?大多数用户认为我的网站处于离线状态。几天后缓存会自动删除...太久了!

答案1

建议的解决方案是购买或更新相关的 SSL 证书并让您的网站在 HTTPS 下重新上线。

您描述的缓存听起来像是 HSTS 缓存,尽管您没有提到使用它。

如果这是问题所在,你可以禁用 HSTS 缓存通过将此代码添加到您的 nginx 配置文件中:

 add_header Strict-Transport-Security max-age=0;

相关内容