【问题标题】:Rewritten URL being logged by Google as multiple URL's被 Google 记录为多个 URL 的重写 URL
【发布时间】:2013-09-06 11:27:24
【问题描述】:

我已经使用 .htaccess 重写了 url 以缩短

Original url: `domain.com/content.php?language=en&section=1&english_page_id=5&shortname=page-name`
New url: `domain.com/en/1/5/page-name`

我正在使用重写规则

RewriteRule ^([^/]*)/([^/]*)/([^/]*)/([^/]*)$ /content.php?language=$1&section=$2&english_page_id=$3&shortname=$4 [L]

我从 Google Web Tools 中注意到,该 url 被记录在各种 url 下,因此显示为重复的内容。对此进行调查,我的 url 重写似乎也允许在最后一个斜杠后输入一个空白条目。

重复的网址

domain.com/en/14/5/
domain.com/en/14/5/anything
domain.com/en/14/5/ anything
domain.com/en/14/5/any thing

任何帮助将不胜感激

【问题讨论】:

    标签: php apache .htaccess url mod-rewrite


    【解决方案1】:

    您需要包含规范 URL - 即页面内容的权威 URL。这基本上是<head> 中的<link> 标记,其中包含您希望Google 记录的地址而不是实际地址。

    http://googlewebmastercentral.blogspot.gr/2009/02/specify-your-canonical.html

    在您提供的示例中,您可以添加标签

    <link rel="canonical" href="http://domain.com/en/1/5/page-name" />
    

    在您页面的&lt;head&gt; 中,Google 会将包含此内容的所有链接视为同一页面。

    【讨论】:

    • 感谢 hexblot。我可以使用 mysql 条目动态填充这个标签吗?
    • 别担心,我自己回答了 :o)
    • 因此添加了标签,但问题仍在继续并不断升级。我已经要求谷歌重新抓取,但仍然没有喜悦。还有其他想法吗?
    • 假设两个页面(即 example.com/url1 和 /url2 )具有相同的规范,它们将被 Google 视为一个。手动检查(查看源代码)它们是否以匿名用户的身份正确生成,然后等待 - Google 可能需要一些时间来获取更改。
    猜你喜欢
    • 2013-01-26
    • 1970-01-01
    • 2021-06-25
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-12-12
    相关资源
    最近更新 更多