web-dev-qa-db-ja.com

同じWebサイトを持つ複数のドメインのRobots.txt

次の3つのドメインがあります。

  1. example1.com(許可しない)
  2. example2.com(許可しない)
  3. example3.com(許可)

すべてのドメインは、public_htmlである同じフォルダーを指します。

検索エンジンが最初の2つのドメインでページをクロールできないようにする方法

7
Saurabh Bajpai

私はこれをPHPで管理する同様のWebサイトで作業しています。

私の.htaccessには、次の行があります:

RewriteRule ^robots.txt$ robots.php

Robots.phpには次のものがあります。

<?php
  header('Content-Type: text/plain; charset=utf-8');

  if($_SERVER['HTTP_Host']=='www.allowed-site.fr'){
    echo 'User-agent: *
    Disallow: 
    Host: https://www.allowed-site.fr/
    Sitemap: https://www.allowed-site.fr/sitemap-fr.xml
    ';
  } else if($_SERVER['HTTP_Host']=='www.allowed-site.lu'){
    echo 'User-agent: *
    Disallow: /example/
    Host: https://www.allowed-site.lu/
    Sitemap: https://www.allowed-site.lu/sitemap-lu.xml
    ';
  } else {
    echo 'User-agent: *
    Disallow: /
    ';
  }
?>

これにより、個々のドメインごとにrobots.txtを調整できる単一のファイルを作成できます。

3
Andrew Lott

検索エンジンに許可するドメインは1つだけなので、RewriteRulesをより簡単にできます。これを使用してください:

RewriteEngine On
RewriteCond %{HTTP_Host} ^example3\.com$
RewriteRule ^robots\.txt$ /robots-allow.txt [L]

Public_htmlフォルダーに2つのファイルを作成する必要があります。 robots.txtおよびrobots-allow.txt

Robots.txtに次を追加する必要があります。

User-agent: searchengine
Disallow: /

searchengineをgoogleまたはブロックするエンジンに置き換えます。検索エンジンをさらに追加する場合は、上記の行を繰り返します。その後、robots.txtは次のようになります。

User-agent: searchengine
Disallow: /
User-agent: searchengine2
Disallow: /
User-agent: searchengine3
Disallow: /

その後、robots-allow.txtで空のファイルのままにするか、次のようにすべての検索エンジンのクロール遅延を調整できます。

User-agent: *
Crawl-delay: 1

Crawl-delayの後の数値は、同じユーザーエージェントからサーバーへのリクエスト間の最小待機時間を秒単位で表します。

1
Mike