LoginSignup
2
0

More than 3 years have passed since last update.

AWS ELB + EC2構成時のWordPressのリダイレクトループ

Posted at

.htaccessの問題

原因

Webサーバーが通信を処理する際、Webサーバーは非SSLでの通信を受けることになります。.htaccessに下記のような記載がある場合、リダイレクトループが発生してしまう可能性があります。

(NG記載)
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

対応方法

%{HTTP:X-Forwarded-Proto}で判断させることで、クライアントがELB宛にhttpで接続しているかhttpsで接続しているかを区別することができます。

(推奨の記載)
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} =http
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

WordPressがhttpsにリダイレクトさせようとしてしまう問題

原因

SSL化したWordPressを表示する際、WordPressのプログラムがhttpで通信を受けたと勘違いして、css等の読み込みをhttpで実施しようとしてしまう可能性があります。トップページをhttps、css等をhttpで読み込んでも、ブラウザでエラーが出ることがあります。

対応方法

(2019年2月25日現在)デフォルトでは、WordPressにはクライアントがELB宛の接続をhttpsで行っているかどうかをチェックする仕組みがありません。クライアントがhttpsでアクセスしているかどうかをPHP側でもチェックさせて、httpsであれば環境変数にもhttpsで接続されている旨を入れてしまいます。

wp-config.php
define('FORCE_SSL_ADMIN', true);
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
       $_SERVER['HTTPS']='on';
}

参考サイト > AWS ELB + EC2構成時のWordPressのリダイレクトループの原因と対応方法

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0