使用apache将404重定向到另一个域?

时间:2009-07-27 16:49:04

标签: apache mod-rewrite http-status-code-404

嘿伙计们,对阿帕奇有疑问。我有一个已经重新设计的网站,但是我希望捕获人们可能已经收藏或从搜索引擎到新域名下的旧网站的所有“旧”链接。如何让apache只重定向404找不到旧站点?

TIA,

Ĵ

4 个答案:

答案 0 :(得分:5)

您应首先确定要发送的状态代码。无法发送404状态代码和重定向。

但是seth已经提到了正确的方法,ErrorDocument directive

# 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/

答案 1 :(得分:4)

您的旧域应捕获所有响应,并在标头的“位置”字段中使用新域返回“301永久移动”响应。 404表示“未找到”,在这种情况下,它并非严格属实。

答案 2 :(得分:1)

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

您可以添加元重定向,这样如果他们在几秒钟后没有执行任何操作,则会自动重定向。

哪种选择效果最好取决于你做出决定。

答案 3 :(得分:0)

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

 ErrorDocument 404 /cgi-bin/redirect-to-other.cgi