0

我已经使网址 SEO 友好,即

http://mydomain.com/topic/title-of-page

之前,上述页面的 url 是

http://mydomain.com/search?id=6567889

现在 Google 仍在搜索结果中显示第二个 URL。我的问题是,如果我不允许/search进入robots.txt,Google 会完全停止抓取该页面还是仍会抓取mydomain.com/topic/title-of-page新的 URL?

非常感谢你的帮助。抱歉 URL 中的空格,因为 SO 不允许我发布它们

塞布

4

1 回答 1

0

你会想马上解决这个问题。在 SEO 方面,网站上的重复内容将会出现问题。

要从您的网站减少一半的搜索引擎流量,请将其添加到您的 robots.txt 文件中:

User-agent: *
Disallow: /search.php

这样,任何搜索引擎都不会挖掘旧链接。他们可能仍会为他们的搜索结果缓存它。话虽如此,您需要使用 301 重定向来处理他们提供的每个页面,这样您就不会受到惩罚。这将告诉他们更新他们的缓存。

此外,您需要添加一个 sitemap.xml 文件,其中包含服务器上所有正确 URL 的优先级顺序。

假设您将新路径存储在数据库中,您需要对search.php. 这样您就可以保留您的 SEO 网址。301 是永久重定向。

if(preg_match('!^/search!',$_SERVER['REQUEST_URI'])){
  $tempID = $_GET['id'];
  $tempID = mysqli_real_escape_string($tempID);

  $query = "select count(*) from table where id=$tempID";

  $count = mysqli_result(mysqli_query($db_link,$query),0);

if($count==1){

 $query2 = "select correctPath  from table where id=$tempID";

 $correctPath = mysqli_result(mysqli_query($db_link,$query2),0);
   header( "HTTP/1.1 301 Moved Permanently" );
   header( "Location: $correctPath" );
   exit();
  } else {
  //non-existent ID
   header( "HTTP/1.1 301 Moved Permanently" );
   header( "Location: /" );
   exit();
  } 
}

否则,您可以将第二个查询替换为您用于构建路径的函数。

您可以像这样为每个条目向 .htaccess 文件中添加一些内容,但这不是未来的证明,并且列表越大,处理的时间就越长(更多的服务器开销)。

RewriteEngine On
RewriteRule ^search\.php\?id=1  /page1_new_path/ [L,R=301]
RewriteRule ^search\.php\?id=2  /page2_new_path/ [L,R=301]
于 2013-04-18T01:59:18.937 回答