首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >ErrorDocument和Mod重写

ErrorDocument和Mod重写
EN

Stack Overflow用户
提问于 2011-12-08 02:40:55
回答 1查看 854关注 0票数 1

我想知道是否有一种方法可以使用Mod重写来处理每个可能的http状态错误代码(4XX和5XX ),而不是像这样在htaccess中声明它们:

代码语言:javascript
复制
# serve custom error pages
ErrorDocument 400 error.php?code=400
[...]
ErrorDocument 510 error.php?code=510

在某个地方,我发现了这个小窍门:

代码语言:javascript
复制
# provide a universal error document
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^.*$ error.php [L]

但它不是只处理404个吗?如果它是好的,我如何修改我的缓存破坏重写规则,使其也处理此功能?

代码语言:javascript
复制
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)\.\d+\.(css|js)$ $1.$2 [L]

我需要像这样的东西:

代码语言:javascript
复制
IF %{REQUEST_URI} MATCHES "^(.+)\.\d+\.(css|js)$"
    REWRITE TO "$1.$2"
ELSE
    REWRITE TO "error.php"

你能帮帮我吗?非常感谢!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2011-12-08 02:48:59

你是否期望在不久的将来出现新一波的HTTP状态代码,你不能仅仅列出10个左右的错误代码来指向正确的相应文档?你真的应该浏览一下List of HTTP status codes,找出你的服务器实际使用的是哪些,并为这些文件设置错误文档。一个普通的web服务器可能只会看到404和500,如果没有正确配置权限,可能会看到403,如果你使用的是共享web服务,可能会看到509 (尽管我认为这是由主机提供商处理的)。如果你没有构建一些非常先进的web服务器,可以做很多不同的事情,那么你只是在浪费web服务器的微观时间来寻找那些它永远不会用到的错误代码。

但说真的,不要列出从400到510的每个状态代码。我是认真的。其中很多都是当执行脚本确定出现错误时手动发送的状态代码。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8420671

复制
相关文章

相似问题

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