私のApacheサーバーはALB/ELBの背後にあります。ロードバランサーでSSLを終了しています。ロードバランサーは80と443の両方でリッスンします。すべてのhttpリクエストをhttpsにリダイレクトしたいと思います。
私はこの書き換えルールを仮想ホスト設定に配置しています:
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule .* https://%{HTTP:Host}%{REQUEST_URI} [L,R=permanent]
これは機能しますが、問題はhtaccessファイルにもリダイレクトがあることです。 htaccessファイルを介してリダイレクトが発生すると、最初にhttpにリダイレクトされ、次にvhost configリダイレクトがそれを取得してhttpsにリダイレクトします。余分なhttpリダイレクトを排除したい。
http://mysite.example.com/sub 301 https://mysite.example.com/sub 301 http://mysite.example。 com/newsub -このリダイレクトはhtaccess 301です https://mysite.example.com/newsub 200
最初にhtaccessをhttpにリダイレクトする方法を順調に回避したいと思います。 https://% {HTTP:Host}を追加してルールを書き換えることで、これを回避できます。これはこれを行う最良の方法ですか?
RewriteRule ^sub$ https://%{HTTP:Host}/newsub [R=301,L]
Application Load Balancerは、リダイレクトと固定応答の2つの新しいアクションをサポートするようになりました。これらのアクションをコンテンツベースのルーティングルールの一部として構成し、この機能をロードバランサーにオフロードできます。これにより、Elastic Load Balancingのスケール、可用性、信頼性を活用しながら、デプロイメントが簡素化されます。
AWSで動作させるために私がしたことは次のとおりです。