单个ErrorDocument指令捕获所有错误(.htaccess)

Mik*_*ano 37 apache .htaccess mod-rewrite errordocument

有没有类似通配符指令来捕获所有可能的错误并在单个自定义错误页面中处理它们?

ErrorDocument 404 /error.php?code=404
ErrorDocument 403 /error.php?code=403
...
ErrorDocument NNN /error.php?code=NNN #possible use of RegExp?
Run Code Online (Sandbox Code Playgroud)

我知道我可能不会在这里处理很多自定义错误页面,但我对此很好奇.

Gum*_*mbo 26

这是不可能的.您需要ErrorDocument为每个要处理的状态代码指定一个指令,而不是使用默认错误处理程序.


小智 6

供完整参考......据我所知......

首先 - .htaccess格式

第二 - 描述。

我在这里找到的所有这些 -> httpstatuses.com

这些都是代码 - 不仅仅是错误.. 有些会破坏您的网站。.

像这样使用:

ErrorDocument 100 https://EXAMPLE.com
Run Code Online (Sandbox Code Playgroud)

这是完全复制粘贴..它不是我的,但是我重新格式化了列表。


(悬停描述,点击查看详情。)

1×× :信息

100:继续
101:切换协议
102:处理


2×× :成功

200:OK
201:创建
202:接受
203:非授权信息
204:OK(无内容)
205:重置内容
206:部分内容
207:多状态
208:已报告
226 : 即时通讯使用


3×× :重定向

300:多项选择
301:永久移动
302:找到
303:查看其他
304:未修改
305:使用代理
307:临时重定向
308:永久重定向


4××:客户端错误

400:错误请求
401:未授权
402:需要付款
403:禁止
404:未找到
405:方法不允许
406:不可接受
407:代理身份验证
408:请求超时
409
•冲突410:消失
411:需要长度
412:前提条件失败
413:请求实体太大
414:请求URI 太长
415:不支持的媒体类型
416:请求的范围无法满足
417:期望失败
418:我是茶壶
422:无法处理的实体
423:锁定
424:方法失败
426:需要升级
428:需要先决条件
429。 "):请求太多
431:请求标头字段太大
444:无响应
451:由于法律原因不可用
499:客户端关闭请求


5××:服务器错误

500:内部服务器错误
501:未实现
502:错误的网关
503:服务不可用
504:网关超时
505:不支持HTTP版本
506:变体还谈判中
507:存储不足
508:检测到循环
510:未扩展
511:需要网络身份验证
599:网络连接超时错误

来源


AK_*_*AK_ 5

感谢@gadget-guru,你启发我构建了一个脚本来测试所有错误,并构建了这个.htaccess文件来一次捕获所有错误。

ErrorDocument 400 /
ErrorDocument 401 /
ErrorDocument 402 /
ErrorDocument 403 /
ErrorDocument 404 /
ErrorDocument 405 /
ErrorDocument 406 /
ErrorDocument 407 /
ErrorDocument 408 /
ErrorDocument 409 /
ErrorDocument 410 /
ErrorDocument 411 /
ErrorDocument 412 /
ErrorDocument 413 /
ErrorDocument 414 /
ErrorDocument 415 /
ErrorDocument 416 /
ErrorDocument 417 /
ErrorDocument 422 /
ErrorDocument 423 /
ErrorDocument 424 /
ErrorDocument 426 /
ErrorDocument 428 /
ErrorDocument 429 /
ErrorDocument 431 /
ErrorDocument 451 /
ErrorDocument 500 /
ErrorDocument 501 /
ErrorDocument 502 /
ErrorDocument 503 /
ErrorDocument 504 /
ErrorDocument 505 /
ErrorDocument 506 /
ErrorDocument 507 /
ErrorDocument 508 /
ErrorDocument 510 /
ErrorDocument 511 /
Run Code Online (Sandbox Code Playgroud)

这会将用户重定向到主页,但您当然可以选择任何页面。例子:

ErrorDocument 511 /error.html
Run Code Online (Sandbox Code Playgroud)

请注意,任何其他错误代码都会破坏服务器,导致HTTP 500