4

我最近刚刚在一个旧域名上为客户建立了一个新站点。显然在过去的某个时候,有人在域上启用了 HSTS,所以有些人在访问它时收到“您的连接不是私有的”错误。为了解决这个问题,我得到了一个 Let's Encrypt SSL Certificate 并把

<IfModule mod_headers.c>
    Header set Strict-Transport-Security "max-age=0; includeSubDomains" env=HTTPS
</IfModule>

在设置了它的浏览器中禁用 HSTS 的标题中。

现在的问题是,有了这个设置,人们仍然可以使用 https 浏览网站(因为它现在有一个有效的证书)。他们还可以在 https 上添加书签等。一旦我让证书过期,这将是一个问题(我将这样做,因为他们不需要它。)

所以我在 .htaccess 文件中添加了一个重定向:

<IfModule mod_rewrite.c>
    RewriteEngine On
    RewriteCond %{HTTPS} =on
    RewriteRule ^(.*)$ http://%{HTTP_HOST}/$1 [R=301,L]
</IfModule>

但是有了这两个设置,现在有一个重定向循环。如果我使用没有重定向的 HSTS 禁用代码,我可以访问该站点一次以禁用 HSTS,重新添加重定向,然后正常访问它,但显然我不能为每个用户都这样做。我最好的猜测是,即使 HSTS 代码放在 .htaccess 文件中的重定向之前,也会在浏览器禁用 HSTS 之前触发重定向并导致重定向循环。

有什么办法可以解决这个问题吗?

谢谢!

4

0 回答 0