【问题标题】:HSTS not appearing in headersHSTS 未出现在标题中
【发布时间】:2018-08-20 17:26:24
【问题描述】:

我的.htaccess 文件中有以下几行。

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

但是我知道我的网站没有发送 HSTS 标头。

HTTP/1.1 200 OK
Date: Mon, 20 Aug 2018 17:15:20 GMT
Server: Apache
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
X-Pingback: https://www.xxxxxx.co.uk/xmlrpc.php
Link: <https://www.xxxxxxxx.co.uk/>; rel=shortlink, <https://www.xxxxx.co.uk/wp-json/>; rel="https://github.com/WP-API/WP-API"
Set-Cookie: PHPSESSID=ch4b175rshdlqwlrq3ij8cgo441; path=/
Content-Type: text/html; charset=UTF-8

如果我运行apachectl -M,我可以在列表中看到headers_module (shared),所以知道模块在那里。

还有其他地方可以覆盖这些设置吗?在 htaccess 文件中设置的所有其他设置都可以正常工作。

【问题讨论】:

    标签: apache .htaccess http-headers hsts


    【解决方案1】:

    需要确认的是,您的 htaccess 正在为该请求读取。一种简单的方法是在其中输入胡言乱语,如果没有出现错误,则说明它没有被读取。

    未阅读的最常见原因:

    • 该目录范围的 AllowOverride 为 None
    • 您的测试请求根本没有在文件系统之外提供(代理)

    【讨论】:

    • 这是一个基于 WHM/cPanel 的服务器 - 完全设置了 AllowOverride。 所有 .htaccess 文件上的其他命令都受到尊重 - 这真的让我很难过,它不允许它通过
    • 我还应该补充一点,添加乱码会导致 500 服务器错误:-(
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-05-19
    • 2021-10-26
    • 1970-01-01
    • 1970-01-01
    • 2015-03-23
    • 1970-01-01
    相关资源
    最近更新 更多