检测.htaccess中对php_value/php_flag的支持以抑制错误-php CGI模式-mod_php


Detect support for php_value / php_flag in .htaccess to suppress errors - PHP CGI mode - mod_php

我在.htaccess中使用php_valuephp_flag规则,例如:

php_value upload_max_filesize 100M

但是,当服务器在CGI模式而不是Apache模式下运行时,这会导致错误,因此我必须使用php.ini规则,例如:

upload_max_filesize = 100M

我的代码库需要适用于任何一种模式,而无需对每台服务器进行手动更改。

我花了一段时间才找到一个允许这两种方法都到位的解决方案,由于很难找到,我想我应该在这里发布我的解决方案。

您可以在.htaccess中检测mod_php,并确保仅在支持这些指令时才尝试这些指令。In.htaccess:

<IfModule mod_php5.c>
   php_value upload_max_filesize 100M
   php_flag ...
</IfModule>

注意:根据您的设置,您可能需要将mod_php5.c更改为mod_php4.cmod_php.c

此外,在php模式下,您可以使用.htaccess:中的以下命令手动停止冗余php.ini文件的公开访问

<Files ~ "'.ini">
   Order allow,deny
   Deny from all
</Files>

希望这能帮你节省一些时间!