php - 在 .htaccess 文件中操作 PHP 响应的 header ?

标签 php apache .htaccess http-headers

是否可以向 PHP 生成的响应添加 header (在 .htaccess 文件中定义)?

我的文件中有以下 .htaccess 文件,它应该为我的 Apache Web 服务器提供的每个响应添加一个 header TestHeader:

#<IfModule mod_headers.c>
#  Header unset X-Powered-By
  Header add TestHeader "It works."
#</IfModule>

我在该文件夹中还有另外三个文件:

  1. html.html

    <html>content</html>
    
  2. 1.php

    <?php
    echo "<html>content php</html>";
    
  3. 2.php

    <?php
    header("TestHeader: Sent from PHP.");
    echo "<html>content php</html>";
    
    • 请求 html.html 返回标题 TestHeader: "It works."
    • 请求 1.php 返回 header TestHeader
    • 请求 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/

相关文章:

php - 使用 MySQL 数据库进行 URL 重写

php - CSV 与 MySQL 性能对比

ruby-on-rails - Phusion Passenger 不在 Apache 上工作

laravel - 如何在 Ubuntu 16.04 上使用 Apache 通过 SSL 实现 Laravel Websockets(beyondco.de 的演示项目)?

java - Apache Shiro 的身份验证问题

.htaccess - htaccess 重写为 ajax 的哈希值

PHP测试远程MySQL服务器是否可用

php - 如何在php中正确输出mysql数据库的数据

php - 在 IBM i (AS400) DB2 中导入/导出 CSV

php - 启用 url 重写后 joomla 3.0 中的 URL 重写 YES 但给出错误