不要在同一托管的多个域上抓取某些页面

问题描述 投票:0回答:1

我有一个托管帐户,上面停有 2 个域名,网站通过读取正在使用的域名来显示不同的内容。

Google 会抓取此内容并将这 2 个域列为不同的网站。

所以我们在 Google 上列出了这些:-
www.blue.com/index.php
www.pink.com/index.php

然后假设我有另一个页面,我只想在蓝色域上使用:www.blue.com/test.php,因为域已停放,这仍然可以在 www.pink.com/test.php 上使用

这意味着它会被蜘蛛抓取,但我不希望它这样做。

我怎样才能阻止这个?

是否可以根据域有多个 htaccess 规则?或者也许是一个 robots.txt 来阻止蜘蛛抓取 - 这将如何与多个域一起工作?

对我来说最好的解决方案是什么?

.htaccess web-crawler robots.txt
1个回答
1
投票

重定向到.htaccess 中不同域特定的 robots_(blue|pink).txt:

<IfModule mod_write.c>

  RewriteEngine on

  # internal redirect to robots_blue.txt
  RewriteCond %{HTTP_HOST} =www.blue.com
  RewriteRule ^robots\.txt$ /robots_blue.txt [L]

  # internal redirect to robots_pink.txt
  RewriteCond %{HTTP_HOST} =www.pink.com
  RewriteRule ^robots\.txt$ /robots_pink.txt [L]

  # internal redirct to index_blue.php, rewrite internal only 
  RewriteCond %{HTTP_HOST} =www.blue.com
  RewriteRule ^index\.php$ /index_blue.php [L]  # or "... /index.php?site=blue"

  # external permanent redirect of test.php to index.php if not www.blue.com  
  RewriteCond %{HTTP_HOST} !=www.blue.com
  RewriteRule ^test\.php$ /index.php [L,R=301] 

  # internal redirect
  RewriteCond %{HTTP_HOST} =www.pink.com
  RewriteRule ^index\.php$ /index_pink.php [L]

robots_blue.txt,不要抓取www.blue.com中的test.php:

User-agent: *
Sitemap: http://www.blue.com/sitemap.xml

Disallow: /test.php
Disallow: ...

robots_pink.txt,允许在 www.pink.com 中抓取:

User-agent: *
Sitemap: http://www.blue.com/sitemap.xml

Disallow:

如果 www.blue.com 的禁止与 www.pink.com 相同,则只需将 robots_blue.txt 用作两个域的 robots.txt。如果 www.pink.com 中没有使用 test.php,它应该可以工作。

但是如果在 robots.txt 中也使用 sitemap.xml,这应该是一个解决方案。

© www.soinside.com 2019 - 2024. All rights reserved.