3

嘿伙计们,有一个关于apache的问题。我有一个经过重新设计的网站,但我想捕获人们可能已添加书签或来自搜索引擎的所有“旧”链接,这些链接指向新域名下的旧网站。如何让 apache 仅将未找到的 404 重定向到旧站点?

TIA,

Ĵ

4

4 回答 4

7

您应该首先确定要发送的状态代码。无法同时发送 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/
于 2009-07-27T17:01:52.233 回答
4

您的旧域应捕获所有响应,并在标头的“位置”字段中返回带有新域的“301 永久移动”响应。404 表示“未找到”,在这种情况下,它并不完全正确。

于 2009-07-27T16:57:35.550 回答
1

与@seth 提出的类似的另一个选项是添加处理程序,使其指向一个静态 html 页面,您可以使用该页面向用户解释发生了什么,并向他们提供选项。

你可以包含一个元重定向,这样如果他们在几秒钟后没有做任何事情,他们就会自动重定向。

哪个选项最有效取决于您自己决定。

于 2009-07-27T16:57:08.063 回答
0

您可以将 404 文档设置为重定向用户的 CGI。

 ErrorDocument 404 /cgi-bin/redirect-to-other.cgi
于 2009-07-27T16:53:18.680 回答