我不知道为什么我不能自定义错误500,但它对404,403
有好处我有这样的文件夹
第一个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]
由于
答案 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