我无法获得一个自定义的错误文档来处理400个错误的请求。 这是一个CentOS LAMP服务器。
ErrorDocument 400 /badrdoc.html
我已经尝试使用上面的:
他们都没有工作。 Apache正在服务其默认的400错误请求页面。
任何人都可以解释这一点吗?
编辑:忘了提及,我已经重新启动Apache后的变化。
我得到一个自定义的400错误文档工作相当麻烦。 我把这个添加到了我的Apache conf的顶层:
ErrorDocument 404 /404.html ErrorDocument 400 /400.html
并在DocumentRoot创build了两个错误文档。 首先,我testing了404:
echo -en "GET /foo HTTP/1.0\n\n" | nc 127.0.0.1 80
这返回我的自定义404。
然后400(注意,主要斜线缺失):
echo -en "GET foo HTTP/1.0\n\n" | nc 127.0.0.1 80
答复是默认的Apache 400。
我确实设法通过将HTTPS虚拟主机与HTTP通信来获取我的自定义400:
echo -en "GET / HTTP/1.0\n\n" | nc 127.0.0.1 443
即使提出无效请求,您仍然可以获得相同的自定义400:
echo -en "GET foo HTTP/1.0\n\n" | nc 127.0.0.1 443
不幸的是,对于您的testing,与非ssl虚拟主机交谈的SSL不会导致任何types的400。 我仍然没有想出如何获得一个自定义ErrorDocuemnt 400端口80发回。
PS我记得在某处读取ErrorDocument 400将无法在.htaccess文件中工作,因为如果请求格式错误,甚至可能无法确定正确的DocumentRoot 。 这同样可能适用于基于名称的虚拟主机。