我在Linux系统上安装了一个自托管Wordpress,并且在中进行了很多修改,例如黑名单和路径重写等。htaccess文件,一切正常。
但是,我有以下规则:
<IfModule mod_headers.c>
RewriteEngine On ## HAVE TRIED WITH THIS LINE THERE AND WITHOUT, NO CHANGE ##
Header set X-XSS-Protection "1; mode=block"
Header always append X-Frame-Options SAMEORIGIN
Header set X-Content-Type-Options nosniff
</IfModule>
但它没有生效,也没有得到应用。我已经尽最大能力验证了语法,并且与文档一致,它是正确的。因此,任何人都可以向我解释为什么它没有生效,以及我可能需要做些什么才能让它发挥作用。
如果有人能帮助我更好地了解正在发生的事情以及脱节的地方,我将不胜感激。我会发布整个。htaccess但事实是它相当长,我不想把帖子弄得乱七八糟。此外,这并不重要(至少我不这么认为),但这个块位于文件的最后。
现场详细信息:
WordPress版本:4.2.4运行于:Apache上,由:PHP/5.5.26驱动
SO网友:Kevin Fodness
在线重写引擎(如您所示)不是必需的,它属于另一个模块mod\\u rewrite。您应该将其从mod\\u headers块中删除。
您可能没有在主机上安装或激活Apache模块的标头。如果运行测试时可能出现一些中断,可以尝试删除If块并在父上下文中运行命令。如果失败,这很好地表明它没有工作,因为没有安装头。
如果您使用的是Debian系统(Ubuntu等),则可以通过SSH启用类似Apache模块的Headers:
sudo a2enmod headers
sudo service apache2 restart