如何在 .htaccess 中输入多个 PHP 值?

Posted

技术标签:

【中文标题】如何在 .htaccess 中输入多个 PHP 值?【英文标题】:How Do I Enter Multiple PHP Values in .htaccess? 【发布时间】:2011-01-19 09:37:53 【问题描述】:

我正在编辑 .htaccess 文件,以便对我的 php.ini 文件进行一些覆盖(我无权访问它)。到目前为止,我已经添加了:

php_value max_execution_time 600
php_value error_reporting E_WARNING
php_value log_errors Off

我正在编辑的应用程序 (vTiger CRM) 建议将“error_reporting”设置为“E_WARNING & ~E_NOTICE”。当我输入该值时,我最终得到一个错误 500。如何添加正确的 error_reporting 值?谢谢。

【问题讨论】:

【参考方案1】:

使用诸如E_WARNING 之类的常量在PHP 之外没有任何意义——当您编写.htaccess 文件时,您就处于“PHP 之外”。 (例如,参见documentation of error_reporting

因此,您不能使用这些常量,而必须使用它们的整数值,您可以在这里找到:Predefined Constants

在您的特定情况下,了解您应该使用哪个值的最简单方法是使用一个小的 PHP 脚本来进行计算。

例如:

<?php
var_dump(E_ALL & ~E_NOTICE);

将输出:

int 30711

(比通过常量的值,我想自己计算要容易得多^^)

【讨论】:

感谢您为我拼写出来。你的解释对我来说很有意义。 :) 不客气 :-) 玩得开心! (不得不承认,第一次做这种配置的时候,我问过自己和你一样的问题^^) var_dump(E_ALL & ~E_NOTICE);我没有看到,谢谢!【参考方案2】:

您不能在 .htaccess 中使用 php 常量。它们在那种环境中不可用。您应该使用常量所代表的整数值。

【讨论】:

【参考方案3】:

要考虑的其他事情是在您的 php 脚本中使用 ini_set(),您将可以访问 php 常量。

ini_set('max_execution_time', '600');
ini_set('error_reporting', E_WARNING);
ini_set('log_errors', '0');

在 phpsite ini.list.php 上有一个页面,它将告诉您哪些 ini 指令可以这样设置,哪些必须在 php.ini 中设置。 (我不能发布多个链接,对不起)你给出的3个例子都是合法的,以这种方式改变。

【讨论】:

以上是关于如何在 .htaccess 中输入多个 PHP 值?的主要内容,如果未能解决你的问题,请参考以下文章

将多个 php 文件视为目录,htaccess

如何修复 htaccess 中的 php 值错误

PHP & .htaccess:为多个目录添加文件

使用.htaccess重写具有多个参数的URL

如何在.htaccess中隐藏.php扩展名[重复]

为多个参数和页面编辑 .htaccess