每种语言都有不同的域
- www.abc.com
- www.abc.se
- www.abc.de
然后我们为每个站点设置了不同的 sitemap.xml。在 robots.txt 中,我想为每个域添加站点地图参考。
- 是否可以在单个 robots.txt 中为每个域提供多个站点地图引用?
- 如果有多个,它会选择哪一个?
每种语言都有不同的域
然后我们为每个站点设置了不同的 sitemap.xml。在 robots.txt 中,我想为每个域添加站点地图参考。
在所有域重定向和 www 到非 www 重定向之后,我在 .htaccess 中使用以下解决方案。
# Rewrite URL for robots.txt
RewriteRule ^robots\.txt$ robots/%{HTTP_HOST}.txt [L]
在您的根目录中创建一个名为 robots.txt 的新目录。创建一个包含每个域的特定机器人信息的文本文件。
robots.txt 只能通知搜索引擎其自身域的站点地图。因此,当它抓取该域的 robots.txt 时,它将是唯一一个它尊重的人。如果所有三个域都映射到同一个网站并共享一个 robots.txt,那么搜索引擎将有效地找到每个站点地图。
根据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
。