SSLのサイトのみをrobots.txtでdisallowする方法


http://example.com/ と https://example.com/ を運用していて SSLのサイトだけを検索に引っ掛けたくないが、コンテンツが全て同じなので、どのようにrobots.txtを書いていいかわからないというケースありませんでしょうか?

単純に robots.txt に disallow: / するとsslではないサイトも全てブロック対象になります。

そこで方法としては robots_ssl.txt を準備してsslのポート443でのアクセスがあった時のみ robots.txt へのアクセスを robots_ssl.txt へ rewiteします。

nginxでのrewriteの方法を下記に記しておきます。

if ($server_port ~ "^443$"){
    set $rule_0 1$rule_0;
}
if ($rule_0 = "1"){
    rewrite ^/robots.txt$ /robots_ssl.txt;
}

http://example.com/robots.txt → robots.txtを参照
https://example.com/robots.txt → robots_ssl.txtを参照

という動作になります。

robots_ssl.txt はすべてをブロックする内容。下記のような内容にすれば大丈夫でしょう。

robots_ssl.txt

User-agent: *
Disallow: /

robots.txt

User-agent: *
Allow: /

とはいってもcanonicalを設定するのがベストかと思います。

https://support.google.com/webmasters/answer/139394?hl=ja

  • このエントリーをはてなブックマークに追加

コメントをどうぞ

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です