此.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标头的代码?
答案 0 :(得分:3)
如果PHP通过mod_proxy_fcgi运行,则可能没有涉及文件系统目录,因此不会发生htaccess查找。
现在有一个更新的php + mod_proxy_fcgi风格,现在在手册中记录了使用SetHandler而不是ProxyPass - 它允许处理像htaccess这样的东西,因为核心实际上是在文件系统中查找URL作为第一步。