回答:
robots.txt
サイトへのアクセスに使用したサブドメインに基づいて、別のファイルを提供できます。Apacheでこれを行う1つの方法は、.htaccessのmod_rewriteを使用して内部的にURLを書き換えることです。何かのようなもの:
RewriteEngine On
RewriteCond %{HTTP_HOST} !^(www\.)?example\.com$ [NC]
RewriteRule ^robots\.txt$ robots-disallow.txt [L]
上記の状態にすべての要求のためにそのrobots.txt
ホストが以外でどこwww.example.com
かexample.com
、そして内部にリクエストを書き換えますrobots-disallow.txt
。そしてrobots-disallow.txt
、Disallow: /
ディレクティブが含まれます。
.htaccessファイルに他のディレクティブがある場合、このディレクティブは、ルーティングディレクティブの前にある、一番上にある必要があります。
sub.example.com/robots.txt
ので、サブドメインに応じて異なる応答を提供するために何かを行う必要があります。mod_rewriteを使用する必要はありませんが、これは私が何度か使用したテクニックです。robots.txt
が動的に生成される場合は、サーバー側コード(PHPなど)で応答を変更できます。
robots.txt
送信することで、クロールではなくインデックス作成を防ぐX-Robots-Tag: noindex
こともできます(.htaccessでも実行できます)。クロールを防ぐのがおそらく望ましいと思いますが。(?)
robots.txt
ルートに存在する場合にのみ機能します。
robots.txt
からアクセスできるサブドメインWebサイトごとに個別にアップロードする必要がありますhttp://subdomain.example.com/robots.txt
。
に以下のコードを追加します robots.txt
User-agent: *
Disallow: /
また<META>
、すべてのページにRobots タグを挿入することもできます。
<META NAME="ROBOTS" CONTENT="NOINDEX, NOFOLLOW">
/robots.txt
して追加しますがDisallow: /
、コードベースが共有されているため、/robots.txt
すべての(サブ)ドメインに影響を与えずに変更することはできません。」
HTMLページからメタタグを削除し、サブドメインに応じて動的に作成します。たとえば、サブドメインdevを使用します。開発のため。したがって、ページロードイベントでは次のようになります。
' Check if domain is DEV or PROD and set robots accordingly meta tag in head
Dim metatag As HtmlMeta = New HtmlMeta
metatag.Attributes.Add("name", "robots")
If CurrentURL.Contains("dev.advertise-it") Then
metatag.Attributes.Add("content", "NOINDEX, NOFOLLOW")
Else
metatag.Attributes.Add("content", "INDEX, FOLLOW")
End If
Page.Header.Controls.Add(metatag)