制作个性化的5**错误页面是否相关?
Is it relevant to make personalized 5** error pages?
我正在按照教程制作个性化错误页面,在我的 apache conf 中包含如下几行:
ErrorDocument 400 /errors/errors.php
ErrorDocument 401 /errors/errors.php
ErrorDocument 402 /errors/errors.php
ErrorDocument 403 /errors/errors.php
ErrorDocument 404 /errors/errors.php
ErrorDocument 405 /errors/errors.php
ErrorDocument 500 /errors/errors.php
ErrorDocument 501 /errors/errors.php
ErrorDocument 502 /errors/errors.php
ErrorDocument 503 /errors/errors.php
ErrorDocument 504 /errors/errors.php
ErrorDocument 505 /errors/errors.php
并在 error.php
中基于 $_SERVER["REDIRECT_STATUS"]
进行了一些处理。
到目前为止一切顺利。
但我想知道如果服务器遇到内部错误,它能执行error.php
文件吗?
在这种情况下提供 error.html
个文件会更明智吗?
我还有最后一个问题:如何测试这些指令?如何模拟 404 以外的错误?
是 5** 页面将生成自定义 PHP 页面。
要模拟 5** 和 4** 错误,只需像这样使用 headers :
<?php header('HTTP/1.1 500 Internal Server Error'); ?>
有关 headers here 的更多信息。
有一些很好的例子there。
注意 : 覆盖错误页面将使您丢失错误消息,除非您手动处理它们。
是的,您确实担心如果服务器已经生成 500 级错误,服务器可能无法 运行 PHP 脚本。在我工作的地方解决它的方式是:
- 创建您的
error.php
页面。
- 创建定期捕获
error.php
到静态 error.html
页面的 cron 作业。
- 将
error.html
设置为 Apache 中的 500 级错误页面。
我们将此作为 cron 作业的原因是我们的应用程序对总体布局或周围内容进行了更改,这些更改无需人工干预即可捕获。
我正在按照教程制作个性化错误页面,在我的 apache conf 中包含如下几行:
ErrorDocument 400 /errors/errors.php
ErrorDocument 401 /errors/errors.php
ErrorDocument 402 /errors/errors.php
ErrorDocument 403 /errors/errors.php
ErrorDocument 404 /errors/errors.php
ErrorDocument 405 /errors/errors.php
ErrorDocument 500 /errors/errors.php
ErrorDocument 501 /errors/errors.php
ErrorDocument 502 /errors/errors.php
ErrorDocument 503 /errors/errors.php
ErrorDocument 504 /errors/errors.php
ErrorDocument 505 /errors/errors.php
并在 error.php
中基于 $_SERVER["REDIRECT_STATUS"]
进行了一些处理。
到目前为止一切顺利。
但我想知道如果服务器遇到内部错误,它能执行error.php
文件吗?
在这种情况下提供 error.html
个文件会更明智吗?
我还有最后一个问题:如何测试这些指令?如何模拟 404 以外的错误?
是 5** 页面将生成自定义 PHP 页面。 要模拟 5** 和 4** 错误,只需像这样使用 headers :
<?php header('HTTP/1.1 500 Internal Server Error'); ?>
有关 headers here 的更多信息。
有一些很好的例子there。
注意 : 覆盖错误页面将使您丢失错误消息,除非您手动处理它们。
是的,您确实担心如果服务器已经生成 500 级错误,服务器可能无法 运行 PHP 脚本。在我工作的地方解决它的方式是:
- 创建您的
error.php
页面。 - 创建定期捕获
error.php
到静态error.html
页面的 cron 作业。 - 将
error.html
设置为 Apache 中的 500 级错误页面。
我们将此作为 cron 作业的原因是我们的应用程序对总体布局或周围内容进行了更改,这些更改无需人工干预即可捕获。