20

每种语言都有不同的域

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

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

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

3 回答 3

35

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

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

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

  • /robots/abc.com.txt
  • /机器人/abc.se.txt
  • /机器人/abc.de.txt
于 2013-06-07T10:50:16.940 回答
8

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

于 2012-07-07T15:41:12.250 回答
5

根据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/具有指定文件的目录robots/<domain.tld>.txt

于 2018-11-01T11:37:36.610 回答