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

标签 php .htaccess mod-php

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

php_value upload_max_filesize 100M

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

upload_max_filesize = 100M

我的代码库需要在任一模式下工作,无需手动更改每台服务器。

我花了一段时间才找到一个解决方案,让这两种方法都到位,因为很难找到,我想我会在这里发布我的解决方案。

最佳答案

您可以在 .htaccess 中检测 mod_php 并确保仅在支持时尝试这些指令。在 .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>

希望这可以为您节省一些时间!

关于php - 检测 .htaccess 中对 php_value/php_flag 的支持以抑制错误 - PHP CGI 模式 - mod_php,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33998265/

相关文章:

php - 如何根据 .htaccess 中的文件类型限制文件上传大小限制

php - mod_php 是否正确地尊重 HEAD 请求?

php - 通过 Xdebug 禁用 HTML 堆栈跟踪

performance - PHP 处理速度 apache 2.4 mpm-prefork mod_php 5.4 与 nginx 1.2.x PHP-FPM 5.4

php - 检查是否有一些电子邮件地址在 gravatar 注册?

php - 具有多个包含在不同元素上的 XPath

php - 来自多个元素的 jquery 属性

php - 无法在mysql选择查询中获取两个字段

.htaccess 重定向重写规则

php - 使用 htaccess 隐藏扩展名不起作用