配置 Apache 仅在使用 HTTPS 的虚拟主机中发送 HSTS 标头

配置 Apache 仅在使用 HTTPS 的虚拟主机中发送 HSTS 标头

我们有一台 Apache 2.4 服务器,它运行多个虚拟主机,其中一些使用 http,一些使用 https。我想Strict-Transport-Security仅在使用 https 的虚拟主机中发送相同的 HSTS () 标头。

我知道我可以Header单独向每个虚拟主机添加命令,但我宁愿在 Apache 全局配置部分中设置一次。是否可以在全局配置中设置它,以便仅有的https 虚拟主机发送吗?

答案1

您可以尝试使用 if 表达式。

http://httpd.apache.org/docs/2.4/mod/core.html#if

http://httpd.apache.org/docs/2.4/expr.html

例如,未经测试

# Check a HTTP header for a list of values <If "%{HTTPS} == 'on' && %{HTTP_HOST} == 'ssl.example.com'"> Header set HSTS ... </If>

相关内容