web-dev-qa-db-ja.com

同じサイトでhttpとhttpsに異なるrobots.txtを提供するにはどうすればよいですか?

Apacheが提供する小さなサイトを取得し(Nginxを前面に配置することも、Apacheを変更することもできません)、httpとhttpsの両方で同じサイトにサービスを提供するように設定されています(リダイレクトhttp-> httpsがないため、これまでのところ、httpバージョンとhttpsバージョンの両方が並行して提供されます)。

.htaccessしたがって、httpとhttpsを介して同じURIで異なるテキストファイルを提供しますか?

お気に入り http://example.com/proto.txtは、「サイトはhttp経由です」と言いながらhttps://example.com/proto.txtは、「https経由で提供されるサイト」と表示されます。

11
Kevin M

an Alias を使用します

Robots.txtとrobots_http.txtの2つのファイルを作成し、これをhttp VirtualHostに追加します。

Alias "/robots.txt" "/path/to/documentroot/robots_http.txt"
19

「メイン」のApache構成を変更できないか変更しないが、.htaccessファイルで変更する必要がある場合は、RewriteRuleRewriteCondとともに使用して、 HTTPSの場合。

以下に沿ったもの:

RewriteEngine On

RewriteCond %{HTTPS} "on"
RewriteRule robots.txt robots_https.txt [L]

おそらく動作するはずです(私はテストしませんでした)。

これは、HTTPSターミネーション自体を行うApacheに基づいていることに注意してください。その前にリバースプロキシでHTTPS終了が行われる場合、条件は異なる可能性があります(リバースプロキシとApacheの構成によって異なります)。

2
jcaron