我刚刚在Windows 7桌面上设置了Apache 2.4 32位,我正在测试一个简单的AJAX网站。我有一个.htaccess文件,它将所有非资源文件请求定向到index.php,在这个.php脚本中,我检查$_SERVER["HTTP_X_REQUESTED_WITH"]
以确定给定的请求是否是ajax(我自己设置此头文件)我发送ajax请求。)
虽然标头已经设置好,但是在我的.php脚本运行之前,Apache似乎正在删除它。我可以在Chrome中看到请求标头,但在.php脚本中没有。我甚至尝试在Apache的access.log中记录\"%{X_REQUESTED_WITH}i\"
,但我也没有在那里看到它。
当站点在Bluehost上运行时,此功能有效。我是否需要配置Apache才能使其在本地计算机上运行?
答案 0 :(得分:0)
由于“安全”原因,Apache 2.4现在会删除带有下划线的所有标头。
根据他们的文档,您可以通过将其添加到您的htaccess中来添加它们:
SetEnvIfNoCase ^Accept.Encoding$ ^(.*)$ fix_accept_encoding=$1
RequestHeader set Accept-Encoding %{fix_accept_encoding}e env=fix_accept_encoding
其中Accept.Encoding和Accept-Encoding是标题名称。下划线分别用点和连字符替换。