自定义页面错误500时出错

时间:2015-06-11 02:57:04

标签: php apache .htaccess error-handling

我不知道为什么我不能自定义错误500,但它对404,403

有好处

我有这样的文件夹

  • WWW
    • 的index.php
    • .htaccess(2)
  • 错误
    • 的index.php
  • .htaccess(1)

第一个htaccess

RewriteEngine on
RewriteBase /

# Error
ErrorDocument 403 /error/index.php?error=403
ErrorDocument 404 /error/index.php?error=404
ErrorDocument 500 /error/index.php?error=500

第二次

RewriteEngine on
RewriteBase /
RewriteRule ^(.+)/$ /www/index.php?v=$1 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.+)$ /www/index.php?v=$1 [QSA,L]

由于

1 个答案:

答案 0 :(得分:3)

自定义错误500页是最难使用的。问题是,服务器可以抛出500 internal server error的原因有很多。 500的自定义页面仅在Apache可以处理500的原因以显示页面时才起作用。比如说您在.htaccess页面或apache配置文件中出现语法错误,它会抛出一个500 server error但是因为Apache是​​down,它不能提供包括该自定义页面在内的任何内容,以便获得浏览器默认页面。此外,根据您的PHP错误报告设置的方式,您也不会获得500个自定义页面。还有更多的东西,定制500页几乎是无用的,因为大多数人都没有看到过。您会在他们知道之前知道,因为它通常是configuration问题,就像代码中的语法错误一样。

503是用户将看到的最常见的网页,尤其是如果您的网站因维护而关闭,而我将关注这些网页。

无论如何,我要看一下这个链接,看看有关500个自定义页面的更多信息,了解它何时以及为何无法正常工作。

Apache's ErrorDocument directive does not redirect

同样来自Apache docs

  

虽然可以覆盖大多数错误消息,但确实如此   无论如何使用内部消息的情况   设置ErrorDocument。特别是,如果格式错误的请求是   检测到,正常的请求处理将立即停止并且   返回内部错误消息。这是必要的,以防止   不良请求导致的安全问题。

http://httpd.apache.org/docs/2.4/mod/core.html#errordocument