5

我在我的网站的 .htaccess 中插入了以下内容,以便加入HSTS 预加载列表

<ifModule mod_headers.c>
Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains; preload"   
</ifModule>

问题是当我提交我的网站时,我获得:

警告:HTTP 上不必要的 HSTS 标头。http://fabriziorocca.it 处的 HTTP 页面发送一个 HSTS 标头。这对 HTTP 没有影响,应该被删除。

目前,我在 .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]

我该如何解决这个问题?

先感谢您。

4

4 回答 4

1

尝试:

<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]
于 2016-07-07T01:01:38.233 回答
1

在您的重定向规则下方添加代码:

Header always set Strict-Transport-Security "max-age=31536000; 
includeSubDomains; preload" env=HTTPS
于 2017-05-15T20:10:04.697 回答
1

我在 htaccess 中添加对我来说非常适合。

RewriteEngine On
RewriteCond %{HTTPS} off
# First rewrite to HTTPS:
# Don't put www. here. If it is already there it will be included, if not
# the subsequent rule will catch it.
RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301]
# Now, rewrite any request to the wrong domain to use www.
# [NC] is a case-insensitive match
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.%{HTTP_HOST}%{REQUEST_URI} [L,R=301]


# Use HTTP Strict Transport Security to force client to use secure connections only
Header always set Strict-Transport-Security "max-age=63072000; includeSubDomains; preload" "expr=%{HTTPS} == 'on'"

env=HTTPS 现在不起作用。

于 2020-08-13T18:00:48.767 回答
0

否... 错误:HTTP 首先重定向到 www http://domain.fr(HTTP) 应在添加 www 子域之前立即重定向到https://domain.fr(HTTPS)。现在,第一个重定向是 to https://www.domain.fr/。需要额外的重定向以确保任何支持 HSTS 的浏览器都会记录顶级域的 HSTS 条目,而不仅仅是子域。

于 2017-03-03T14:54:59.547 回答