首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >500而不是404和500自己投500

500而不是404和500自己投500
EN

Stack Overflow用户
提问于 2014-01-26 13:23:32
回答 1查看 308关注 0票数 1

我在一个子文件夹中有一个站点,其中有一个工作非常好的.htaccess文件,但是如果规则找不到任何东西,它会引发500个内部服务器错误,而不是404,但是我想通过添加500个错误文档来解决它,但是500个错误页(除了经典的500个消息)说:

“此外,在试图使用ErrorDocument处理请求时,遇到了500个内部服务器错误。”

所以我有两个问题:

  1. 为何500人而不是404人呢?
  2. 在处理500个错误文档时,是什么导致了“附加”错误?

到目前为止这是我的.htaccess:

代码语言:javascript
复制
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]
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-01-26 13:28:38

尝试以下规则:

代码语言:javascript
复制
DirectorySlash On

RewriteEngine On
RewriteBase /mysubdir/

ErrorDocument 404 /mysubdir/404.php

RewriteRule ^(folderexcludedone|folderexcludedtwo)(/|$) - [NC,L]

RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([^/.]+)$ $1/ [L,R]

RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d [OR]
RewriteCond %{REQUEST_FILENAME}.php !-f
RewriteRule ^ - [L]

RewriteRule ^([^/]+)/?$ $1.php [L,QSA]

RewriteRule ^([^/]+)/([^/]+)/?$ $1.php?$1=$2 [L,QSA]

RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ $1.php?$2=$3 [L,QSA]
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/21363934

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档