Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/274.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Apache不会为PHP脚本设置头_Php_Apache_Mod Expires_Mod Fcgid_Mod Headers - Fatal编程技术网

Apache不会为PHP脚本设置头

Apache不会为PHP脚本设置头,php,apache,mod-expires,mod-fcgid,mod-headers,Php,Apache,Mod Expires,Mod Fcgid,Mod Headers,此.htaccess文件: 。。。在我的开发框Windows box、Apache/2.4.10中,PHP作为Apache模块运行,正如预期的那样工作,其中works意味着它为所有静态或动态资源生成适当的头文件 但是,在我的生产服务器Linux系统中,Apache/2.2.31,PHP作为FastCGI运行,带有mod_fcgid/2.3.9,它只适用于静态资产,不适用于PHP脚本 我怀疑这种差异来自PHP SAPI,对吗?有没有办法修复它,这样我就不需要复制生成HTTP头的代码?如果PHP是通

此.htaccess文件:

。。。在我的开发框Windows box、Apache/2.4.10中,PHP作为Apache模块运行,正如预期的那样工作,其中works意味着它为所有静态或动态资源生成适当的头文件

但是,在我的生产服务器Linux系统中,Apache/2.2.31,PHP作为FastCGI运行,带有mod_fcgid/2.3.9,它只适用于静态资产,不适用于PHP脚本


我怀疑这种差异来自PHP SAPI,对吗?有没有办法修复它,这样我就不需要复制生成HTTP头的代码?

如果PHP是通过mod_proxy_fcgi运行的,那么可能不涉及文件系统目录,因此无法进行htaccess查找


现在手册中有一种更新的php+mod_proxy_fcgi版本,它使用SetHandler而不是ProxyPass,它允许处理htaccess之类的内容,因为核心实际上是在文件系统中查找URL作为第一步。

php可以编辑标题,但这并不意味着默认情况下它会这样做。无论如何,你还是应该得到这些答案,我想答案是适用的:。。。没有深入挖掘,但阅读了它引用的bug报告。你的产品盒在共享主机上吗?这可能会阻止您更改某些apache模块…@ficuscr这当然是我的问题,但到目前为止,唯一的答案是它不是一个bug,并且链接了一张涉及其他内容的票据。Yuk..@LucLaverdure-是的,它是共享主机。如果它是一个专用服务器,我能改变什么?服务器正在使用mod_fcgid/2.3.9,当然会执行.htaccess,因为其他模块按预期工作,例如mod_rewrite或AddHandler指令选择PHP版本,无效指令会导致状态500 response.BTW,我已经用我正在使用的实际CGI处理程序更新了这个问题,它不是mod_fastcgi,而是mod_fcgid,我的缺点这就是原因:我在共享主机上切换到PHP模块,然后头集工作了。我最终得到HSP支持的确认,他们的mod_fcgid设置阻止了.htaccess中设置的自定义头。我非常抱歉当时没有回来报道@据我所知,他们还没有修复任何东西。我的主机提供商的特定设置不允许这些指令对他们处理的文件产生影响。但是,由于这个问题只影响PHP文件,所以使用header编写PHP解决方案是很简单的。
<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>