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


11

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経由で提供」と言うでしょう。


これを書くための正確な方法をチェックする時間はありません(そして、コメントではなく、答えだけです)が、メインのApache設定を変更したくない、または変更できない場合の別のオプションは、RewriteRuleあなたの中に.htaccessそれがHTTPSを介して提供されて上の条件付き。
jcaron

@dcaron、これはまさに私が必要です、それを正確に行う方法を理解できず、それを行うにはアドバイスまたは(より良い)コードスニペットが必要です:)
Kevin M

httpサイトとhttpsサイトが別<VirtualHost>のにあります。そのため、それらの1つで別のrobots.txtを構成するだけです。周囲:RewriteRule ^/robots.txt$ /path/to/alternative/robots.txt [L]
peterh-モニカを

回答:


19

エイリアスを使用する

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

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

vhostの設定を変更することはできません。編集できるのは.htaccessのみです。これがトリックです。
Kevin M

2

「メイン」のApache構成を変更できないか変更しないが、.htaccessファイルで変更する必要がある場合は、HTTPSをチェックするRewriteRulewith を使用できRewriteCondます。

以下の線に沿った何か:

RewriteEngine On

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

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

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

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.