【发布时间】:2014-01-26 13:23:32
【问题描述】:
我在子文件夹中有一个站点,其中有一个 .htaccess 文件,它工作得很好,但如果规则没有找到任何东西,它会引发 500 内部服务器错误而不是 404,但我想我会解决它添加 500 错误文档, 但是 500 错误页面(除了经典的 500 消息)说:
“另外,在执行过程中遇到了 500 Internal Server Error 错误 试图使用 ErrorDocument 来处理请求。”
所以我有两个问题:
- 为什么是 500 而不是 404?
- 在处理 500 错误文档时导致“附加”错误的原因是什么?
到目前为止,这是我的 .htaccess:
DirectorySlash On
RewriteEngine On
RewriteBase /mysubdir/
ErrorDocument 404 /mysubdir/404.php
ErrorDocument 500 /mysubdir/500.php
RewriteRule ^folderexcludedone(/|$) - [NC,L]
RewriteRule ^folderexcludedtwo(/|$) - [NC,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/.]+)$ $1/ [L,R]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/?$ $1.php [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]*)/?$ $1.php?$1=$2 [L,QSA]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule ^([^/]+)/([^/]+)/([^/]*)/?$ $1.php?$2=$3 [L,QSA]
【问题讨论】:
标签: php regex apache .htaccess mod-rewrite