早些时候我已经在主域中安装了我的代码。例如,
www.abcd.com/xyz/page.html
谷歌有大约300个网页使用旧网址编制索引。
现在我已从主域中删除了该代码,并将代码安装在子域中。因此,它会使Google索引的所有网址和所有反向链接都指向旧网址。
现在,当用户点击旧网址时,我需要将所有旧的无效网址指向新的有效网址。
请建议如何处理。
非常感谢...
答案 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_rewrite
或mod_alias
命令。这更像是服务器工作,而不是编程工作。
您可以将以下内容放在.htaccess
文件或vhost
容器中。
RewriteEngine On
RewriteRule ^xyz/page.html$ new-page.php [L,NC,R=301]
请参阅:http://httpd.apache.org/docs/current/mod/mod_rewrite.html#rewriterule
Redirect permanent xyz/page.html http://domain.com/new-page.php
请参阅:http://httpd.apache.org/docs/current/mod/mod_alias.html#redirect
您可以使用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');