是否可以向 PHP 生成的响应添加 header (在 .htaccess
文件中定义)?
我的文件中有以下 .htaccess
文件,它应该为我的 Apache Web 服务器提供的每个响应添加一个 header 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
不返回 headerTestHeader
- 请求
2.php
返回标题TestHeader: "Sent from PHP."
- 请求
是否有可能使用 .htaccess
指令从 PHP 输出中操纵响应 header ?
编辑:PHP 在服务器上作为 FastCGI
运行。
最佳答案
您可以使用 SetEnvIf 然后相应地添加 header :
SetEnvIf Request_URI "\.php$" phpfile
Header set TestHeader "Sent from PHP" env=phpfile
如果请求 URL 以扩展名“.php”结尾,则 SetEnvIf 将设置一个变量“phpfile”。如果仅存在变量“phpfile”,则 TestHeader: Sent from PHP
将作为响应 header 发送。
您可以根据需要将此逻辑用于任意数量的扩展程序或 URL 模式。
编辑:如果 header 已经存在,即它是从 PHP 发送的,则使用 Header Set
apache 将用新值替换它。
关于php - 在 .htaccess 文件中操作 PHP 响应的 header ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38145859/