如何禁用HSTS并强制重定向到http?

时间:2016-12-16 15:47:18

标签: apache .htaccess redirect ssl hsts

我最近刚为一个客户端的旧域名建立了一个新网站。显然在过去的某个时候有人在域上启用了HSTS,所以有些人得到了#34;你的连接不是私密的"访问时出错。为了解决这个问题,我得到了一个Let的加密SSL证书并放入

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

在标题中,在已设置HSTS的浏览器中禁用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之前触发,并导致重定向循环。

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

谢谢!

0 个答案:

没有答案