在.htaccess文件中处理PHP响应的标头?

Edw*_*ard 5 php apache .htaccess http-headers

是否可以将标头(在.htaccess文件中定义)添加到PHP生成的响应中?

我有以下.htaccess文件,应该TestHeader为我的Apache Webserver提供的每个响应添加一个Header :

#<IfModule mod_headers.c>
#  Header unset X-Powered-By
  Header add TestHeader "It works."
#</IfModule>
Run Code Online (Sandbox Code Playgroud)

我在该文件夹中还有三个附加文件:

  1. html.html

    <html>content</html>
    
    Run Code Online (Sandbox Code Playgroud)
  2. 1.php

    <?php
    echo "<html>content php</html>";
    
    Run Code Online (Sandbox Code Playgroud)
  3. 2.php

    <?php
    header("TestHeader: Sent from PHP.");
    echo "<html>content php</html>";
    
    Run Code Online (Sandbox Code Playgroud)
    • 请求html.html返回标头TestHeader: "It works."
    • 请求1.php没有返回头TestHeader
    • 请求2.php返回标头TestHeader: "Sent from PHP."

是否有可能使用.htaccess指令从PHP输出操作响应头?

编辑:PHP FastCGI在服务器上运行.

R_U*_*ser 2

这可能是您的 Apache 版本的问题以及 PHP 作为 FastCGI 运行的事实。

在 Apache 2.2.X 中存在一个错误:https://bz.apache.org/bugzilla/show_bug.cgi?id=49308

我发现其他几篇文章建议使用该always条件来解决问题:

Header always add TestHeader "It works."
Run Code Online (Sandbox Code Playgroud)

另请参阅: