【问题标题】:Robots.txt for multiple domains多个域的 Robots.txt
【发布时间】:2012-07-07 13:43:45
【问题描述】:

每种语言都有不同的域

  1. www.abc.com
  2. www.abc.se
  3. www.abc.de

然后每个站点都有不同的 sitemap.xml。在 robots.txt 中,我想为每个域添加站点地图参考。

  1. 是否可以在单个 robots.txt 中为每个域提供多个站点地图引用?
  2. 如果有多个,它会选择哪一个?

【问题讨论】:

    标签: seo


    【解决方案1】:

    robots.txt 只能通知搜索引擎其自身域的站点地图。因此,当它抓取该域的 robots.txt 时,它将是唯一一个它尊重的人。如果所有三个域都映射到同一个网站并共享一个 robots.txt,那么搜索引擎将有效地找到每个站点地图。

    【讨论】:

    • 这是三个不同的网站托管在一起。当然,内容不同,他们拥有的sitemap.xml文件也不同。
    • 这是同类中唯一的答案,它只有一个赞成票。互联网的其余部分似乎使用 htaccess 将 robots.txt 重写为特定于域的文件,但这更有意义
    【解决方案2】:

    在所有域重定向和 www 到非 www 重定向之后,我在 .htaccess 中使用以下解决方案。

    # Rewrite URL for robots.txt
    RewriteRule ^robots\.txt$ robots/%{HTTP_HOST}.txt [L]
    

    在您的根目录中创建一个名为 robots.txt 的新目录。 创建一个文本文件,其中包含每个域的特定机器人信息。

    • /robots/abc.com.txt
    • /robots/abc.se.txt
    • /robots/abc.de.txt

    【讨论】:

    • 不是要求robots.txt在每个域的根目录下吗?
    • @AlexioVay 根据robotstxt.org/orig.html : >start-quoteend-quote
    【解决方案3】:

    根据Hans2103 的回答,我写了这篇文章,应该可以安全地包含在几乎每个网络项目中:

    # URL Rewrite solution for robots.txt for multidomains on single docroot
    RewriteCond %{REQUEST_FILENAME} !-d # not an existing dir
    RewriteCond %{REQUEST_FILENAME} !-f # not an existing file
    RewriteCond robots/%{HTTP_HOST}.txt -f # and the specific robots file exists
    RewriteRule ^robots\.txt$ robots/%{HTTP_HOST}.txt [L]
    

    这个重写条件应该只服务于正常的robots.txt(如果它存在)并且只查找具有指定文件robots/<domain.tld>.txt 的robots/ 目录。

    【讨论】:

    • 不是要求robots.txt在每个域的根目录下吗?
    • 这样,对 /robots.txt 的每个请求都会通过发送指定域的内容得到响应(当然,如果您正确设置了目录和文件)
    猜你喜欢
    • 2023-03-07
    • 2018-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-16
    • 2021-12-12
    • 1970-01-01
    • 2014-12-06
    相关资源
    最近更新 更多