在httpd.conf中设置标题不会在.htaccess中设置标题

时间:2018-11-23 13:18:49

标签: apache .htaccess http-headers

我有一个奇怪的问题:

我有一堆服务器上每个网站的标头都相同。我认为“ 只能在httpd.conf中设置一次,以便每次有新的添加/更改操作时,将写入的内容保存到一堆.htaccess中。

这就是我要做的;

httpd.conf文件中虚拟主机之前,我设置了:

<IfModule mod_headers.c>
  <Directory '/'>
Header always set Feature-Policy "accelerometer 'none'; camera 'none'; geolocation 'none'; gyroscope 'none'; magnetometer 'none'; microphone 'none'; payment 'none'; usb 'none'"
Header always set Cache-Control no-cache,must-revalidate
Header always set X-Clacks-Overhead "GNU Terry Pratchett"
Header always set X-XSS-Protection 1;mode=block
Header always set X-Content-Type-Options nosniff
Header always set X-Frame-Options SAMEORIGIN
Header always set Content-Language en
Header always set Referrer-Policy origin-when-cross-origin
Header unset Last-Modified
Header unset X-Powered-By
Header always set Strict-Transport-Security "max-age=31536000;" "expr=%{HTTPS} == 'on'"
Header always set Expect-CT enforce,max-age=2592000
  </Directory>
</IfModule>

但是,在执行此操作并强制重新启动Apache(版本2.4.37)之后,我发现Header中没有发送其他或编辑过的.htaccess指令。

例如;每个帐户都有自己的CSP策略,这反映在帐户public_html/.htaccess文件中:

示例:

Header set Content-Security-Policy "upgrade-insecure-requests; default-src 'self' https:;"

但是,当任何浏览器读取标头时,接收到的标头仅是httpd.conf中的标头,而.htaccess中没有显示其他或已更改的标头。

我不知道为什么会这样吗?

我尝试了什么

  • 我已将标头包装在.htaccess语句的<IfModule ...>中。
  • 我使用了不同的浏览器来迫使apache重新读取 .htaccess文件。
  • 我已经阅读过google,找不到与htaccess标题阅读混淆的httpd.conf参考。
  • .Htaccess文件的其他部分正在正常读取。

注释

  • Apache版本2.4.37
  • 所有这些标头均在上述更改之前在.htaccess中起作用。据我所知,这是 not 标头语法。

非常感谢您的帮助。

1 个答案:

答案 0 :(得分:0)

经过大量探索,我发现发生这种情况的原因是由于PHP是通过CGI处理程序运行的。更改为{s: np.std(df[(df.Cat == s) & (df.Date > today-datetime.timedelta(days=10))].Val) for s in df.Cat.unique()} 处理程序可立即解决此问题。

请参阅此http://prntscr.com/ln1in0question/answer