嘿伙计们,有一个关于apache的问题。我有一个经过重新设计的网站,但我想捕获人们可能已添加书签或来自搜索引擎的所有“旧”链接,这些链接指向新域名下的旧网站。如何让 apache 仅将未找到的 404 重定向到旧站点?
TIA,
Ĵ
嘿伙计们,有一个关于apache的问题。我有一个经过重新设计的网站,但我想捕获人们可能已添加书签或来自搜索引擎的所有“旧”链接,这些链接指向新域名下的旧网站。如何让 apache 仅将未找到的 404 重定向到旧站点?
TIA,
Ĵ
您应该首先确定要发送的状态代码。无法同时发送 404 状态代码和重定向。
但是赛斯确实已经提到了正确的方法,ErrorDocument
指令:
# local path
ErrorDocument 404 /local/path/to/error/document
# external URI
ErrorDocument 404 http://uri.example/to/error/document
如果您使用本地路径,则会发送 404 状态代码。如果您使用绝对 URI,则会发送 302 状态代码(临时重定向)。
如果您想发送 301 重定向:
Redirect 301 / http://new.example.com/
您的旧域应捕获所有响应,并在标头的“位置”字段中返回带有新域的“301 永久移动”响应。404 表示“未找到”,在这种情况下,它并不完全正确。
与@seth 提出的类似的另一个选项是添加处理程序,使其指向一个静态 html 页面,您可以使用该页面向用户解释发生了什么,并向他们提供选项。
你可以包含一个元重定向,这样如果他们在几秒钟后没有做任何事情,他们就会自动重定向。
哪个选项最有效取决于您自己决定。
您可以将 404 文档设置为重定向用户的 CGI。
ErrorDocument 404 /cgi-bin/redirect-to-other.cgi