.htaccess php_value auto_prepend_file导致500错误。我怎样才能解决这个问题?

时间:2013-02-14 22:32:45

标签: .htaccess php

我的.htaccess如下:

Options +FollowSymLinks
RewriteEngine On
RewriteBase /school
RewriteRule ^([a-zA-Z0-9]+)/$ index.php?page=$1
RewriteRule ^([a-zA-Z0-9]+)$ index.php?page=$1

php_value auto_prepend_file ./inc/library.php

ErrorDocument 404 /school/index.php?page=404

截至./,我读到的是指示相对路径。

2 个答案:

答案 0 :(得分:9)

注意:这些信息几乎是从another website逐字逐句获取的,我认为它很好地解释了这个问题,我非常怀疑这是问题所在:


在.htaccess文件中使用php_flag或php_value

有些PHP脚本建议在.htaccess文件中使用“php_value”或“php_flag”命令,如下例所示:

php_value  include_path         ".:/usr/local/lib/php" 
php_flag   display_errors       Off
php_value  upload_max_filesize  2M
php_value  auto_prepend_file    "./inc/library.php"

但是,有些服务器在“CGI模式”(而不是Apache模块)中运行PHP,因此您不能在.htaccess文件中使用“php_value”或“php_flag”命令。如果您尝试这样做,您将看到“内部服务器错误”消息。

但是,您可以修改php.ini文件以获得相同的效果。事实上,修改php.ini实际上比使用php_value或php_flag更灵活:有很多东西你无法使用.htaccess文件覆盖,但你可以覆盖php.ini文件中的几乎任何PHP设置。

要获得与上面的.htaccess行相同的效果,您只需将这些行添加到自定义的php.ini文件中:

include_path = ".:/usr/local/lib/php" 
display_errors = Off
upload_max_filesize = 2M
auto_prepend_file = "./inc/library.php"

注意:某些系统需要在路径周围引用,有些系统不得使用引号。

答案 1 :(得分:3)

如果要在运行php作为CGI / FastCGI应用程序时在.htaccess文件中使用php_value,则可以使用htscanner PHP模块。