针对多个域的Robots.txt

时间:2012-07-07 08:02:01

标签: seo

我们为每种语言设置了不同的域名

  1. www.abc.com
  2. www.abc.se
  3. www.abc.de
  4. 然后我们为每个站点提供不同的sitemap.xml。在robots.txt中,我想为每个域添加站点地图参考。

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

3 个答案:

答案 0 :(得分:27)

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

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

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

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

答案 1 :(得分:5)

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

答案 2 :(得分:2)

根据Hans2103的回答,我写了一个应该安全地包含在每个Web项目中的代码:

# 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/的{​​{1}}目录。

N.B。:上面的重写尚未经过测试。如果发现任何缺陷,请随时纠正我;如果有任何有用的纠正意见,我将更新此帖子,以供将来参考。