将 errorDocument 状态代码重新组合为一个 - 可能吗?

Regrouping errorDocument status codes into one - Possible?

我想在一行中简化我的 htaccess errorDocument 部分,这可能吗?在网上找不到任何关于此的文档。提前致谢!

实际 htaccess:

ErrorDocument 400 /errors.php?error=400
ErrorDocument 401 /errors.php?error=401
ErrorDocument 402 /errors.php?error=402
ErrorDocument 403 /errors.php?error=403
ErrorDocument 404 /errors.php?error=404
ErrorDocument 405 /errors.php?error=405
ErrorDocument 406 /errors.php?error=406
ErrorDocument 407 /errors.php?error=407
ErrorDocument 408 /errors.php?error=408
ErrorDocument 409 /errors.php?error=409
ErrorDocument 410 /errors.php?error=410
ErrorDocument 411 /errors.php?error=411
ErrorDocument 412 /errors.php?error=412
ErrorDocument 413 /errors.php?error=413
ErrorDocument 414 /errors.php?error=414
ErrorDocument 415 /errors.php?error=415
ErrorDocument 416 /errors.php?error=416
ErrorDocument 417 /errors.php?error=417
ErrorDocument 418 /errors.php?error=418
ErrorDocument 421 /errors.php?error=421
ErrorDocument 422 /errors.php?error=422
ErrorDocument 423 /errors.php?error=423
ErrorDocument 424 /errors.php?error=424
ErrorDocument 425 /errors.php?error=425
ErrorDocument 426 /errors.php?error=426
ErrorDocument 428 /errors.php?error=428
ErrorDocument 429 /errors.php?error=429
ErrorDocument 431 /errors.php?error=431
ErrorDocument 451 /errors.php?error=451

ErrorDocument 500 /errors.php?error=500
ErrorDocument 501 /errors.php?error=501
ErrorDocument 502 /errors.php?error=502
ErrorDocument 503 /errors.php?error=503
ErrorDocument 504 /errors.php?error=504
ErrorDocument 505 /errors.php?error=505
ErrorDocument 506 /errors.php?error=506
ErrorDocument 507 /errors.php?error=507
ErrorDocument 508 /errors.php?error=508
ErrorDocument 510 /errors.php?error=510
ErrorDocument 511 /errors.php?error=511

不可能。

您应该处理每个错误代码。无法使用正则表达式或类似的东西来管理它。

但是,您需要为每个错误代码指定一个单独的指令:

  • 您不需要捕获所有这些错误状态,因为大多数错误状态无论如何都不会触发您的脚本,因为大多数错误状态触发得太早,在 .htaccess 被处理之前( 运行 你的 ErrorDocument 指令)。

  • 您不需要以 error URL 参数的形式显式传递错误代码,因为此错误代码已经可用于您的 PHP 脚本形式为 $_SERVER['REDIRECT_STATUS'] superglobal.

    所以,以下就足够了:

    ErrorDocument 404 /errors.php
    

    然后参考$_SERVER['REDIRECT_STATUS']获取响应代码,例如。本例中为“404”。