尝试使用ErrorDocument处理请求时发生500内部服务器错误(500 Internal Server Error when trying to use ErrorDocument to handle request)
我有这个.htaccess文件:
Options -Indexes RewriteEngine on ErrorDocument 404 /404.php RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^([^/]*)/?(.*)$ ./$1.php RewriteCond %{THE_REQUEST} \.php RewriteRule ^(.*)$ - [L,R=404]但是,当我到localhost/example.php ,它会返回一个500内部服务器错误。
请帮忙吗? 谢谢。
编辑:
出现的完整错误信息是:
Not Found The requested URL /example.php was not found on this server. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.I have this .htaccess file:
Options -Indexes RewriteEngine on ErrorDocument 404 /404.php RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^([^/]*)/?(.*)$ ./$1.php RewriteCond %{THE_REQUEST} \.php RewriteRule ^(.*)$ - [L,R=404]However, when I go to localhost/example.php, it returns a 500 Internal Server Error.
Any help please? Thanks.
EDIT:
The full error message that comes up is:
Not Found The requested URL /example.php was not found on this server. Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.最满意答案
由于循环错误,您最有可能得到500。
从最后的规则中排除404.php为:
ErrorDocument 404 /404.php Options -Indexes -MultiViews RewriteEngine on RewriteCond %{THE_REQUEST} \.php [NC] RewriteRule ^(?!404\.php)$ - [L,NC,R=404] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^([^/]+)/?(.*)$ ./$1.php [L]You're most likely getting 500 due to looping error.
Exclude 404.php from last rule as:
ErrorDocument 404 /404.php Options -Indexes -MultiViews RewriteEngine on RewriteCond %{THE_REQUEST} \.php [NC] RewriteRule ^(?!404\.php)$ - [L,NC,R=404] RewriteCond %{REQUEST_FILENAME} !-d RewriteCond %{REQUEST_FILENAME}.php -f RewriteRule ^([^/]+)/?(.*)$ ./$1.php [L]更多推荐
发布评论