Apache 500错误配置

时间:2013-05-08 21:56:11

标签: apache mod-rewrite

我目前正在尝试配置我的服务器,这样任何丢失的页面都会在404自定义页面上优雅地出错。不幸的是,一切似乎都出错了500内部服务器错误。

我服务器中的网站设置(不使用.htaccess)是:

AllowOverride All

RewriteEngine On
ErrorDocument 404 /404.php
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/]+)$ $1.php [L]

如果我键入domain.com/missingpage - 我得到的是500错误。非常感谢这里的指导。谢谢

1 个答案:

答案 0 :(得分:1)

假设您正在访问服务器上的/misssing-page。它不是文件也不是目录,因此它被重写为/misssing-page.php。它现在看起来更像是一个文件,但在服务器上仍然不存在,因此对于apache,它既不是文件也不是目录,而是再次被重写为/misssing-page.php.php。这会在您的日志中显示10次并导致内部服务器错误。

所以你错过了一个条件,比如:

RewriteCond %{REQUEST_URI} !.php$

所以重写只会在请求的uri末尾有.php时发生