我们为每种语言设置了不同的域名
然后我们为每个站点提供不同的sitemap.xml。在robots.txt中,我想为每个域添加站点地图参考。
答案 0 :(得分:27)
在所有域重定向和www到非www重定向后,我在.htaccess中使用以下解决方案。
# Rewrite URL for robots.txt
RewriteRule ^robots\.txt$ robots/%{HTTP_HOST}.txt [L]
在根目录中创建一个名为robots的新目录。 创建一个文本文件,其中包含每个域的特定机器人信息。
答案 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。:上面的重写尚未经过测试。如果发现任何缺陷,请随时纠正我;如果有任何有用的纠正意见,我将更新此帖子,以供将来参考。