Apache不会为PHP脚本设置标头

时间:2015-08-21 18:47:30

标签: php apache mod-expires mod-fcgid mod-headers

.htaccess文件:

<IfModule mod_expires.c>
    ExpiresActive On
    ExpiresDefault "access plus 4 month"
</IfModule>
<IfModule mod_headers.c>
    Header merge X-ModHeaders "Yes, it is installed"
</IfModule>

...在我的开发框(Windows框,Apache / 2.4.10,作为Apache模块运行的PHP)中按预期工作,其中“工作”意味着它为所有资源(静态或动态)生成适当的标头。

但是,在我的生产服务器(Linux机箱,Apache / 2.2.31,运行为带有mod_fcgid / 2.3.9的FastCGI的PHP)中,它仅适用于静态资产,而不适用于PHP脚本。

我是否正确怀疑差异来自PHP SAPI?有没有办法解决它,所以我不需要复制生成HTTP标头的代码?

1 个答案:

答案 0 :(得分:3)

如果PHP通过mod_proxy_fcgi运行,则可能没有涉及文件系统目录,因此不会发生htaccess查找。

现在有一个更新的php + mod_proxy_fcgi风格,现在在手册中记录了使用SetHandler而不是ProxyPass - 它允许处理像htaccess这样的东西,因为核心实际上是在文件系统中查找URL作为第一步。