我有几个要添加Strict-Transport-Security
标头的基于 IP 的虚拟主机。我正在使用 Apache 2.4 自定义编译。
目前我<VirtualHost>
为每个域有两个容器,如下所示:
<VirtualHost ${IP3}:80>
...
<IfModule rewrite_module>
RewriteEngine On
RewriteCond %{HTTPS} off [OR]
RewriteCond %{HTTP_HOST} !^www\. [NC]
RewriteRule .* https://www.${SITE}%{REQUEST_URI} [NE,R=301,L]
</IfModule>
...
</VirtualHost>
<VirtualHost ${IP3}:443>
...
</VirtualHost>
第一个 VirtualHost 对非 ssl 和非 www 请求执行简单的 mod_rewrite,将所有请求重定向到第二个 VirtualHost。简单的。
问题 1
我应该在第一个 VirtualHost 容器 (:80)、第二个 (:443) 还是两者中设置我的 mod_headers 内容?
问题2
我的 mod_headers 内容应该在 mod_rewrite 内容之前还是之后?
问题 3
我应该将Strict-Transport-Security
标题应用到所有文件,还是只应用 .htm、.html 和 .php 文件?(我有一个 FilesMatch 指令设置为某些标头的限定符)
我的最佳猜测答案
在进行任何测试之前,我最好的猜测答案是:
Q1。将 mod_headers 内容添加到两个VirtualHost 容器中。
Q2。mod_headers 的东西应该在mod_rewrite 的东西之前。
Q3。是的,只有您服务的那些 web 文件类型需要Strict-Transport-Security
. 无需将其添加到 .gifs、.pngs、.svgs、.css、.js 等。
编辑:我看到 stackexchange 也将它们添加到他们的 robots.txt 文件中。
谢谢。
我将暂时发布一个答案,如果有人过来纠正我,我会标记你的答案正确。
Q1。绝对
Strict-Transport-Security
在 :80 和 :443 VirtualHosts 中设置标题。Q2。绝对在任何 mod_rewrite 重定向规则之前添加标头。
Q3。我对这个答案不太确定。
有些网站同时使用 SSL 和非 SSL 资产(css、js、图像),但我的网站仅通过 SSL 提供内容。
所以答案是:这取决于你的设置和你想要什么。将标头添加到 css、js、图像等没有害处。相反,不将其添加到这些文件类型也没有害处。