如何使用HTTP禁用HSTS标头?
问题描述:
我已经为了插在我的网站的.htaccess以下被录取到HSTS preload list:如何使用HTTP禁用HSTS标头?
<ifModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"
</ifModule>
的问题是,当我提出我的网站,我得到:
Warning: Unnecessary HSTS header over HTTP. The HTTP page at http: //fabriziorocca.it sends an HSTS header. This has no effect over HTTP, and should be removed.
目前我在.htaccess中使用以下命令以便从http切换到https:
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
我该如何解决问题?
预先感谢您。
答
尝试用:
<ifModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" "expr=%{HTTPS} == on"
</ifModule>
RewriteCond %{HTTP_HOST} !^www\.
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
RewriteCond %{HTTPS} off
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
+0
我刚试过这个,我得到了同样的错误。 – koljanep
答
不...... 错误:HTTP重定向到www第一 http://domain.fr
(HTTP)添加www子域之前,应立即重定向到https://domain.fr
(HTTPS)。现在,第一个重定向是https://www.domain.fr/
。需要额外的重定向,以确保任何支持HSTS的浏览器都将记录顶级域的HSTS条目,而不仅仅是子域。
答
下面您重定向规则添加代码:
Header always set Strict-Transport-Security "max-age=31536000;
includeSubDomains; preload" env=HTTPS
的可能的复制[如何设置从的.htaccess HSTS头只在HTTPS(http://stackoverflow.com/questions/24144552/how-to -set-hsts-header-from-htaccess-only-on-https) – Tom