需要一个将旧URL重定向到新URL的建议

时间:2011-11-16 17:26:11

标签: http redirect

早些时候我已经在主域中安装了我的代码。例如,

www.abcd.com/xyz/page.html

谷歌有大约300个网页使用旧网址编制索引。

现在我已从主域中删除了该代码,并将代码安装在子域中。因此,它会使Google索引的所有网址和所有反向链接都指向旧网址。

现在,当用户点击旧网址时,我需要将所有旧的无效网址指向新的有效网址。

请建议如何处理。

非常感谢...

4 个答案:

答案 0 :(得分:4)

如果您使用的是Apache,我建议您使用mod_rewrite,因为它允许发送HTTP状态301 Moved Permanently,通知搜索引擎您的网站内容已移至新位置(而不仅仅是删除)。

在.htaccess文件中:

RewriteEngine on
RewriteRule (.*) http://newdomain.mysite.com/$1 [R=301,L]

第一行启用URL“重写”,这是所有类型重定向的奇特术语。第二行被分解为:

  • RewriteRule是匹配网址并更改其指向的位置的指令;
  • (.*)是匹配任何请求的文件路径的正则表达式(没有初始斜杠)
  • http://newdomain.mysite.com/$1是您要发送访问者的地方,$1已扩展为之前匹配的路径
  • [R=301,L]告诉Apache发送301 Moved Permanently HTTP状态代码,并且它是可以匹配此请求的最后一个RewriteRule(仅当您有多个RewriteRule时才有用但无论如何都没有伤害。)

下次抓取工具访问您的网站时,他们会注意到HTTP状态并更新其指向新地址的链接。在Google认为您的整个网站都是404之前,您应该尽快设置它。

答案 1 :(得分:2)

如果您使用Apache作为Web服务器,则可以使用mod_rewritemod_alias命令。这更像是服务器工作,而不是编程工作。

您可以将以下内容放在.htaccess文件或vhost容器中。

mod_rewrite的

RewriteEngine On
RewriteRule ^xyz/page.html$ new-page.php [L,NC,R=301]

请参阅:http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule

mod_alias中

Redirect permanent xyz/page.html http://domain.com/new-page.php

请参阅:http://httpd.apache.org/docs/current/mod/mod_alias.html#redirect

PHP

您可以使用Location标头执行重定向:

header('Location: http://domain.com/new-page.php', true, 301);

爪哇

public void HttpServletResponse.setHeader(String name, String value)

请参阅:http://docstore.mik.ua/orelly/java-ent/servlet/ch05_06.htm

答案 2 :(得分:0)

这应由服务器处理,最好使用htacces重定向

答案 3 :(得分:-1)

PHP:

header('Location: new.url.com');