よくある質問は、すべてのトラフィックをhttps://example.com
に向けたサイトの回答です。
私は、このファイルには、次のしている:
まず第一に、/sites/default/settings.phpでのDrupalののsettings.phpファイル(あなたがhttps://www.example.com
をしたい場合は、いくつかの調整を行うことができます)
$base_url = '//example.com';
$conf['reverse_proxy'] = TRUE;
$conf['reverse_proxy_addresses'] = array('name-of-my-loadbalancer.us-west-2.elb.amazonaws.com');
$conf['reverse_proxy_header'] = 'HTTP_X_CLUSTER_CLIENT_IP';
実際には、上記の「reverse_proxy」設定が実際に必要かどうかはわかりません。実際には、私はそれらを無効にしており、何にも影響していないように思われます。重要な部分は、あなたのsettings.phpファイルに$base_url = '//example.com';
があることを確認することです。
次の部分は.htaccessファイルを構成しています。ここで重要なビットです:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
RewriteCond %{HTTPS} off
RewriteCond %{REQUEST_URI} !=/healthy.html
RewriteRule^https://example\.com%{REQUEST_URI} [L,R=301]
は、私のようなnoobのために、これが最初で把握することが大変でしたが、ここ内訳です:
RewriteCond %{HTTP:X-Forwarded-Proto} !https
これは、送信されている プロトコルを見てロードバランサ。プロトコルが httpsでない場合は、RewriteRuleを開始します。
RewriteCond %{HTTPS} off
トラフィックはHTTPSではないサイトに向かっている場合は、これは重要なビットでのRewriteRuleに
RewriteCond %{REQUEST_URI} !=/healthy.html
を開始します。私は、「成功!」という単語を含むシンプルなhealthy.htmlファイルを持っています。私のメインdrupal Webrootディレクトリ内のApache。 ELBによってhealth.htmlファイルにアクセスすると、それは書き換えルールをバイパスします。そうでなければ、ELBのヘルスチェックが失敗し、サーバーがオフラインになります。
RewriteRule^https://example\.com%{REQUEST_URI} [L,R=301]
ここは実際の書き換えルールです。上記の条件のすべてが合格すると、着信URLがhttps://example.com/whatever
に書き換えられます。ちなみに、Lは「これはこのセットの最後のルールです」のように「最後」を表し、「R = 301」は「301リダイレクト」を表します。
私は手動で(先頭にhttpsで)https://www.example.com
に入力した場合、これは適切なリダイレクトを行わないだけです。私は別の簡単なRewriteCondでそれを修正できると思います。
これは問題ではないようです。また、あなたが投稿している問題は、既にここで何度か尋ねられ、ここで何度も答えられています:http://stackoverflow.com/questions/17174626/elb-and-apache-configuration-for-https-website –
私は、これは疑問ではないので、この質問を議論の対象外とする投票を行う。 –
申し訳ありません - 答えを書いていました。私が試した他の方法はどれも適切に働いていなかったし、少なくとも私を助けるほど詳しくは説明されていなかった。あなたが投稿したものが、使用されたRewriteRuleのために試みられ、無限のリダイレクトにつながった。私はそれを働かせることができる唯一の方法は手動で私のドメインを入力することでした。 – tbox