Bingbotがhttps
で会社のWebサイトのページをクロールしていることに気付きました。 Bingは既にhttp
を介してサイトをクロールしているため、これは取るに足らないように思えます。 https
のみにDisallow: /
を指定する方法はありますか?
Wikipedia によると、各プロトコルには独自のrobots.txtがあります
GoogleのRobots.txt仕様 によると、robots.txt
はhttp
AND https
に適用されます
https
のすぐ上のDisallow: /
をBingに完全にしたくない。
robots.txt自体でHTTP経由で提供する方法はありません。
安全なHTTPS接続のために、異なるロボットファイルを完全に提供できます。 。htaccessファイルで書き換えルールを使用して行う方法の1つを次に示します。
RewriteEngine On
RewriteCond %{HTTPS} =on
RewriteRule ^robots.txt$ robots-deny-all.txt [L]
robots-deny-all.txtの内容は次のとおりです。
User-agent: *
Disallow: /
robots.txtを操作する前に、ページで canonical link elements が定義されていることを確認してください。
Webクローラーは以下を処理する必要があります。
<link rel="canonical" href="…" />
2つのページが同じコンテンツを持っていると見なされるべきであり、URLの1つがコンテンツの優先アドレスであるという非常に強力なヒントとして。
RFC 6596 セクション3:
ターゲット(標準)IRIは:
…
- 「http」から「https」など、異なるスキーム名があります…
正規のリンクヒントを使用すると、適度にインテリジェントなWebクローラーは、HTTPSを介してサイトを再度クロールすることを回避できます。
。htaccessファイルを追加してHTTPSをHTTPにリダイレクトし、robots.txtファイルのリクエストをHTTPSクロールを拒否するファイルにリダイレクトします。
# Redirect HTTPS to HTTP
RewriteCond %{HTTP:X-Forwarded-Proto} =https
RewriteRule ^(.*)$ http://%{HTTP_Host}%{REQUEST_URI} [L,R=301]
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^robots.txt$ robots_https.txt
次に、これを含むrobots_https.txtを追加します。
User-agent: *
Disallow: /
HTTPSリクエスト用に別のrobots.txtを作成します。たとえば、robots_https.txtを作成し、Webサイトのルートに配置します。
次に、ルート。htaccessファイルに次の行を追加して、HTTPSを介してすべてのボット要求をリダイレクトし、代わりにrobots_https.txtを使用します。
RewriteCond %{SERVER_PORT} ^443$
RewriteRule ^robots.txt$ robots_https.txt