如果我错误输入了其中一个网站的网址并故意提取400次错误请求,我收到此消息:
错误请求
您的浏览器发送了此服务器无法理解的请求。 此外,尝试时遇到404 Not Found错误 使用ErrorDocument来处理请求。
这是标准的和预期的,除了我有一个404页面设置并使用.htaccess定义:
ErrorDocument 400 http://www.mywebsite.com/error
ErrorDocument 403 http://www.mywebsite.com/error
ErrorDocument 404 http://www.mywebsite.com/error
为什么浏览器在400错误时无法识别?
在输入不存在的网址时,我的404页面正在运行。
答案 0 :(得分:0)
ErrorDocument 404 http://www.mywebsite.com/error
您不应使用绝对URL定义ErrorDocument
指令。这样做会触发外部3xx重定向到错误文档,而不是内部子请求(推荐)。通过触发外部重定向,您将丢失与触发错误的文档关联的所有服务器变量(状态代码,请求的URL等)。
但是,这可能与您当前的查询有关,也可能没有。
您的.htaccess
文件中是否有例外以允许无条件访问您的错误文档?
答案 1 :(得分:0)
假设您在根目录中有错误页面。
如果你在php / html中看这个并且你有条件不在url中显示文件扩展名,那么你的.htaccess应该如下所示。
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html [L]
ErrorDocument 404 http://www.mywebsite.com/error
(或)
RewriteEngine on
RewriteCond %{REQUEST_FILENAME}.php -f
RewriteRule ^(.*)$ $1.php [L]
RewriteCond %{REQUEST_FILENAME}.html -f
RewriteRule ^(.*)$ $1.html [L]
ErrorDocument 404 http://www.mywebsite.com/error.php(error.html)
否则,如果您在网址中显示文件扩展名,那么它应该类似于下面的
ErrorDocument 404 http://www.mywebsite.com/error.File Extension
Example php error file: ErrorDocument 404 http://www.mywebsite.com/error.php
如果问题得到解决并接受我的回答,请告诉我。