我正在按照教程制作个性化的错误页面,在我的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以外的错误?
答案 0 :(得分:1)
是的,您有一个有效的担忧,即如果服务器已经生成了500级错误,那么服务器可能无法运行PHP脚本。它在我工作的地方得到解决的方式是:
error.php
页面。error.php
捕获到静态error.html
页面的cron作业。error.html
设置为Apache中的500级错误页面。我们将此作为cron作业的原因是,我们的应用程序对总体布局或周围内容进行了更改,这些更改在没有人为干预的情况下被捕获。
答案 1 :(得分:0)