2013-02-05 37 views
0

所以我使用mod_rewrite并为我的网页(待售产品)每天制作网站地图。 Google会读取并编制该网址的索引。但是,如果我更改了该项目的标题,网址将会在站点地图中更改并更新,因此搜索引擎将对带有更新标题的重复内容编制索引。例如:避免使用动态网址重复的内容

example.com/green-dress/54325

(域/标题/ ID)

如果我决定更新标题诸如example.com/green-dress-with-small -rip/54325

正如您所见,它在结尾处具有相同的项目标识。它是相同的项目,除了现在更新。但谷歌,不像我,不知道它是假设更新项目,因为它显然不知道url的最后一部分是项目ID。

所以问题是......我该如何解决这个问题?一种方法是不用mod重写,但如果可能,我宁愿避免。

感谢, DAV

+0

您生成的网站地图不包含欺骗对不对?你想从谷歌的索引中清除东西?不知道我跟着。也许这个? https://developers.google.com/custom-search/docs/indexing#removal – ficuscr

+0

网站地图始终只更新为可用,我的脚本不添加到站点地图,除非它是一个新项目。它总是每天更新项目。有道理我希望... –

+0

是的。标题可以是任何东西!只要斜线后面有项目ID,就会根据ID调出项目。 –

回答

1

第一种可能性是存储旧的URI和执行301 Moved Permanently重定向到新的URI。但是我们在我们的项目中做的是,我们将地址中的标题与控制器中的实际标题进行了比较,如果不匹配,则将301重定向到具有正确标题的地址。过了一段时间谷歌不会扫描旧页面。我们的解决方案更具普遍性,因为我认为

+0

帖木儿,感谢您的答案,但什么是最好的方式?我试图把它放入.htaccess(301重定向),但它似乎与我的重写代码相冲突。它重定向到新的URL,但是.....它添加了“?id = itemnumber”变量重定向URL的末尾(我从.htaccess中的重写规则猜测) –

+0

@DaveFes正如我写的,在我看来,最好比较控制器PHP代码中的标题和使用'header'函数重定向的标题:header(“HTTP/1.1 301永久移动\ r \ n位置:http://example.com/”。$ correctTitle。 “/".$ id);' – Timur

+0

我终于搞定了!!!!!你说的是对的,但问题是你说的控制器,我直到今天才知道。我自己想出了这个想法,然后我重新读了你的答案,这也是一样的东西哈哈。如果你告诉我“比较URI和数据库中包含所有产品的标题,然后在当前URI不匹配的情况下重定向到数据库URI”,那么我会理解它。你说的是控制器,所以我很困惑。不是你的错,而是我的!非常感谢! SOOO现在快乐! –