.htaccess,显示404页而不更改用户输入的url(无重定向)

gzszwxb4  于 2022-11-16  发布在  其他
关注(0)|答案(1)|浏览(111)

我的问题是这样的:
我创建了一个自定义的404错误页面(error.html),我希望它在显示时不实际重定向到该页面,从而保留用户输入的URL。

用户在地址栏中输入*“http://localhost/whatever.url/would/be”*
error.html显示,但地址栏中的URL仍为用户输入的URL:

  • “http://localhost/无论.url/是什么”*

我尝试了其他人的指南和答案,但他们不为我工作,也许是因为我真的很业余,我不知道如何.htaccess实际上是工作的,对不起。
除此之外,我的.htaccess目前看起来如下所示:
ErrorDocument 404 http://localhost/www.minimalistik.de/fejle/404/fejl.html/
是的,这不是很多。感谢所有帮助我的人:)

j5fpnvbx

j5fpnvbx1#

要通过内部子请求提供错误文档(即浏览器地址栏中的URL不改变),只需在ErrorDocument指令中指定一个指向错误文档的根目录相对URL(以斜杠开头)(这通常被认为是“正常”行为)。
例如,如果您的error.html档案位于文件根目录下的/error-documents子目录中,则您可以使用下列指令:

ErrorDocument 404 /error-documents/error.html

用户 * 不会 * 从外部重定向到错误文档。

ErrorDocument 404 http://localhost/www.minimalistik.de/fejle/404/fejl.html/

但是,如果指定绝对URL(即使用scheme + hostname),则Apache会触发302(临时)重定向到错误文档,用户被外部重定向。没有“404 Not Found”响应返回到客户端,除非错误文档本身返回404状态。如果返回200 OK(默认值),则错误文档本身可能会被搜索引擎索引!不用说,这是不推荐的,在大多数情况下都是一个错误。

参考:

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

相关问题