[英]Manipulate Headers of PHP response in .htaccess-file?
是否可以将标头(在.htaccess
文件中定义)添加到PHP生成的响应中?
我有以下.htaccess
文件,该文件应向我的Apache Web服务器传递的每个响应中添加标头TestHeader
:
#<IfModule mod_headers.c>
# Header unset X-Powered-By
Header add TestHeader "It works."
#</IfModule>
我在该文件夹中还有三个其他文件:
html.html
<html>content</html>
1.php
<?php echo "<html>content php</html>";
2.php
<?php header("TestHeader: Sent from PHP."); echo "<html>content php</html>";
html.html
返回标头TestHeader: "It works."
1.php
不返回头TestHeader
2.php
将返回标头TestHeader: "Sent from PHP."
是否可以使用.htaccess
指令从PHP输出操作响应标头?
编辑:PHP在服务器上作为FastCGI
运行。
您可以使用SetEnvIf,然后相应地添加标题:
SetEnvIf Request_URI "\.php$" phpfile
Header set TestHeader "Sent from PHP" env=phpfile
如果请求URL以扩展名“ .php”结尾,则SetEnvIf将设置变量“ phpfile”。 如果仅存在变量“ phpfile”,则将TestHeader: Sent from PHP
作为响应头发送。 您可以根据需要将这种逻辑用于任意数量的扩展名或URL模式。
编辑:如果标题已经存在,即它是从PHP发送的,则使用Header Set
apache将其替换为新值。
这可能是您的Apache版本和PHP作为FastCGI运行的问题。
在Apache 2.2.X中存在一个错误: https ://bz.apache.org/bugzilla/show_bug.cgi?id = 49308
我发现了其他一些建议使用always
条件解决该问题的帖子:
Header always add TestHeader "It works."
另请参阅:
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.