我正在努力完成HSTS的合规性并且是一个Web人员,但这是我的头脑。
我目前的.htaccess是:
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{ENV:HTTPS} !on [NC]
RewriteRule ^(.*)$ https://www.example.com/$1 [R,L]
</IfModule>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload" env=HTTPS
我正在使用:https://hstspreload.org/来检查合规性,当我为我的域运行此工具时,它会返回:
在添加www子域之前, http://example.com
(HTTP)应立即重定向到https://example.com
(HTTPS)。现在,第一次重定向是https://www.example.com/
。需要额外的重定向以确保任何支持HSTS的浏览器都会记录顶级域的HSTS条目,而不仅仅是子域。
如何先强制使用https?
多个重定向是可以的,但我想确保https是第一个。
答案 0 :(得分:0)
您可以像这样重定向:
RewriteEngine On
RewriteBase /
# http -> https keeping same domain
RewriteCond %{ENV:HTTPS} !on
RewriteRule ^ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]
# then add www while keeping it https
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule ^ https://www.%{HTTP_HOST}%{REQUEST_URI} [R=301,NE,L]