私たちは、LATAMの部分だけに取り組んでいるグローバルブランドのウェブサイトプロジェクトを持っています。ここには、コストを削減するために、複数のccTLDで1つのWebサイトをインストールできるWebサイトインストールプロセスがあります。
このため、www.domain.com/robots.txt
のrobots.txtはwww.domain.com.ar/robots.txt
の同じファイルです。
LATAMの国別ロケール(AR、CO、CLなど)ごとにカスタムrobots.txtファイルを実装したいと思います。私たちが考えている解決策の1つは、www.domain.com.ar/robots.txt
を301からwww.domain.com.ar/directory/robots.txt
にリダイレクトすることです。
このようにして、各国のロケールごとにカスタムrobots.txtファイルを作成できます。
ご意見をお寄せいただきありがとうございます。
すべてのスパイダーがリダイレクトに従ってrobots.txt
ファイルに到達できるとは期待していません。参照: Googleはrobots.txtのリダイレクトヘッダーを別のファイル名に尊重しますか?
Apacheサーバーでホストされていると仮定すると、.htaccess
ファイルのmod_rewriteを使用して、正しいドメインに正しいファイルを提供できます。
RewriteEngine On
RewriteCond %{HTTP_Host} ^www\.example\.([a-z\.]+)$
RewriteRule ^robots.txt /%1/robots.txt [L]
その場合、robots.txt
ドメインの.cl
ファイルは/cl/robots.txt
にあり、.com.au
robots.txt
ファイルは/com.au/robots.txt
にあります
このshouldは機能しますが、いくつかの潜在的な欠点があります。
すべてのクローラーは2つのHTTP要求を実行する必要があります。1つはリダイレクトを検出し、もう1つは実際にファイルを取得します。
一部のクローラーは、robots.txt
の301応答を正しく処理しない場合があります。 元のrobots.txt
仕様 には何も記載されていないため、リダイレクトについては何も言わないので、おそらく通常のWebページと同じように扱われる(つまり、従う)必要がありますが、allサイトをクロールしたい無数のロボットがそれを正しくします。
( 1997 Internet Draft は、「[o] nサーバーリダイレクト(HTTPステータスコード3XX)を示すサーバー応答は、リソースができるまでリダイレクトに従う必要がある」と明示的に述べています。 be found」が、それが公式の標準になっていないため、クローラーが実際にそれに従う必要はありません。)
一般に、要求されたドメインに応じて、robots.txt
に対して異なるコンテンツを返すようにWebサーバーを単純に構成することをお勧めします。たとえば、Apache mod_rewrite を使用すると、robots.txt
を次のようなドメイン固有のファイルに内部的に書き換えることができます。
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_Host} ^(www\.)?domain(\.com?)?\.([a-z][a-z])$
RewriteCond robots_%3.txt -f
RewriteRule ^robots\.txt$ robots_%3.txt [NS]
このコードは、サイトの共有ドキュメントルートの.htaccess
ファイルに配置され、たとえばwww.domain.com.ar/robots.txt
をファイルrobots_ar.txt
に追加します(存在する場合)(2番目のRewriteCondがチェックします)。ファイルが存在しない場合、またはホスト名が正規表現と一致しない場合、標準のrobots.txt
ファイルがデフォルトで提供されます。
(ホスト名の正規表現は、www.
プレフィックスのないURLにも一致し、co.
の代わりに2LD com.
(domain.co.uk
のように)を受け入れるように十分に柔軟でなければなりません。 domain
の後の単なるccTLDでも、必要に応じて、さらに多くのケースを受け入れるように調整できます。このコードはテストしていないため、バグ/タイプミスがある可能性があります。
別の可能性は、robots.txt
のリクエストを(たとえば)PHPスクリプトに内部的に書き換えることです。これにより、ホスト名や必要なものに基づいてファイルのコンテンツを動的に生成できます。 mod_rewriteを使用すると、これは次のように簡単に実現できます。
RewriteEngine On
RewriteBase /
RewriteRule ^robots\.txt$ robots.php [NS]
(実際のrobots.php
スクリプトの作成は演習として残されています。)