通过 .htaccess 文件为所有 PHP 脚本设置 HTTP 标头

Posted

技术标签:

【中文标题】通过 .htaccess 文件为所有 PHP 脚本设置 HTTP 标头【英文标题】:Set HTTP header for all PHP scripts via .htaccess file 【发布时间】:2011-01-09 12:41:13 【问题描述】:

我在我的一个项目中为所有 php 程序编写相同的代码行。是否可以在 .htaccess 中为目录执行此操作?怎么做?

PHP 代码:

Header('Content-Type: application/xhtml+xml; charset=utf-8');
Header("Cache-Control: no-transform");

感谢任何帮助。 最好的问候。

优素福·阿基尔

【问题讨论】:

你到底是什么意思?这个我不是很懂…… 您应该知道大多数客户端不理解 real XHTML。您至少应该添加一些内容协商。 【参考方案1】:

如果您想使用 .htaccess(或在 Apache 配置中)执行此操作,可以使用 Apache module mod_headers,如下所示:

Header set Cache-Control "no-transform"
Header set Content-Type "application/xhtml+xml; charset=utf-8"

在htaccess set header 上的搜索会为您提供更多这方面的示例。

【讨论】:

这不会将所有文件设置为 application/xhtml+xml,包括图像、javascript 和样式表吗? 嗨,是否可以为这些发送完整的 .htaccess 代码?我的 htaccess 只有这些代码: Header set Cache-Control "no-transform" Header set Content-Type "application/xhtml+xml; charset=utf-8" 我想我不得不做更多。因为我得到错误。最好的问候。 @robertc:你是对的; OP 说“for directory”,所以这将适用于目录中的所有文件。 @unknown (google):在我看来,这应该整个 .htaccess 代码。您是否安装并启用了 mod_headers?此外,您会收到错误。这并没有告诉我们太多,请更具体 - 什么样的错误?另外,Apache 错误日志中显示了哪些错误? 嗨,我启用了 mod_headers。现在一切正常。一次又一次的感谢。最好的问候。【参考方案2】:

对于您使用AddType from mod_mime 的内容类型。假设您所有的文件都有.php 扩展名:

AddType application/xhtml+xml .php

缓存设置在mod_expires,但是你需要mod_headers来设置Cache-Control:

<FilesMatch "\.php$">
    Header set Cache-Control "no-transform"
</FilesMatch>

【讨论】:

你们所有人...最好的问候...最好的问候。

以上是关于通过 .htaccess 文件为所有 PHP 脚本设置 HTTP 标头的主要内容,如果未能解决你的问题,请参考以下文章

如何阻止对根文件夹中除 index.php 之外的所有 .php 的访问(通过 .htaccess)?

PHP & .htaccess:为多个目录添加文件

htaccess - 将所有文件重写为 index.php,除了 sitemap.xml

调试 .htaccess 的流行技术

php .htaccess文件使用详解

如何通过htaccess设置默认网站页面?