WordPressサイトのテスト環境をエックスサーバーからConoHaWINGに引っ越し作業を行った後、サイトを表示してみると “ERR_TOO_MANY_REDIRECTS” とリダイレクトループのエラーが出て正常に表示することが出来ませんでした。
エラー確認(Chromeで確認)
サイトにSSLを導入していると以下のようなリダイレクトループのエラーが発生します。
リダイレクトループのエラー
メッセージ
このページは動作していません example.com でリダイレクトが繰り返し行われました。 Cookie を消去してみてください. ERR_TOO_MANY_REDIRECTS
原因
ConoHa WING はサーバー変数($_SERVER)の “HTTPS” が取得出来ないためSSL導入サイトの場合には独自に設定をしてあげる必要があるようです。
サーバー変数($_SERVER)確認
array(56) {
["LSPHP_ENABLE_USER_INI"]=>
string(2) "on"
["PATH"]=>
string(28) "/usr/local/bin:/usr/bin:/bin"
["TEMP"]=>
string(4) "/tmp"
["TMP"]=>
string(4) "/tmp"
["TMPDIR"]=>
string(4) "/tmp"
["PWD"]=>
string(1) "/"
["HTTP_ACCEPT"]=>
string(74) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
["HTTP_ACCEPT_ENCODING"]=>
string(17) "gzip, deflate, br"
["HTTP_ACCEPT_LANGUAGE"]=>
string(23) "ja,en-US;q=0.7,en;q=0.3"
["HTTP_AUTHORIZATION"]=>
string(22) "Basic aHVtb3VyOnR1cA=="
["CONTENT_LENGTH"]=>
string(1) "0"
["HTTP_COOKIE"]=>
string(48) "uk5e61cdc56fbe2=29f0bf17dda82e5f719940b294fc42a7"
["HTTP_HOST"]=>
string(21) "example.com"
["HTTP_PRAGMA"]=>
string(8) "no-cache"
["HTTP_USER_AGENT"]=>
string(78) "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0"
["HTTP_CACHE_CONTROL"]=>
string(8) "no-cache"
["HTTP_X_REAL_IP"]=>
string(15) "192.168.0.1"
["HTTP_X_FORWARDED_PROTO"]=>
string(5) "https"
["HTTP_X_FORWARDED_HOST"]=>
string(21) "example.com"
["HTTP_X_FORWARDED_PORT"]=>
string(3) "443"
["HTTP_UPGRADE_INSECURE_REQUESTS"]=>
string(1) "1"
["HTTP_GEOIP_ADDR"]=>
string(15) "192.168.0.1"
["HTTP_GEOIP_CONTINENT_CODE"]=>
string(2) "AS"
["HTTP_GEOIP_COUNTRY_CODE"]=>
string(2) "JP"
["HTTP_GEOIP_COUNTRY_NAME"]=>
string(5) "Japan"
["UNIQUE_ID"]=>
string(27) "XruZVtKo5fxCzTbd5QRlVgAAAL0"
["GEOIP_ADDR"]=>
string(15) "192.168.0.1"
["GEOIP_CONTINENT_CODE"]=>
string(2) "AS"
["GEOIP_COUNTRY_CODE"]=>
string(2) "JP"
["GEOIP_COUNTRY_NAME"]=>
string(5) "Japan"
["SERVER_SIGNATURE"]=>
string(0) ""
["SERVER_SOFTWARE"]=>
string(6) "Apache"
["SERVER_NAME"]=>
string(21) "example.com"
["SERVER_ADDR"]=>
string(9) "127.0.0.1"
["SERVER_PORT"]=>
string(4) "8080"
["REMOTE_ADDR"]=>
string(15) "192.168.0.1"
["DOCUMENT_ROOT"]=>
string(48) "/home/cXXXXXXX/public_html/example.com"
["REQUEST_SCHEME"]=>
string(4) "http"
["CONTEXT_PREFIX"]=>
string(0) ""
["CONTEXT_DOCUMENT_ROOT"]=>
string(48) "/home/cXXXXXXX/public_html/example.com"
["SERVER_ADMIN"]=>
string(14) "root@localhost"
["SCRIPT_FILENAME"]=>
string(57) "/home/cXXXXXXX/public_html/example.com/test.php"
["REMOTE_PORT"]=>
string(5) "28576"
["SERVER_PROTOCOL"]=>
string(8) "HTTP/1.1"
["REQUEST_METHOD"]=>
string(3) "GET"
["QUERY_STRING"]=>
string(0) ""
["REQUEST_URI"]=>
string(9) "/test.php"
["SCRIPT_NAME"]=>
string(9) "/test.php"
["SITE_GUARD"]=>
string(3) "off"
["REMOTE_USER"]=>
string(6) "analyzegear"
["AUTH_TYPE"]=>
string(5) "BASIC"
["PHP_AUTH_USER"]=>
string(6) "analyzegear"
["PHP_AUTH_PW"]=>
string(3) "xxxxxx"
["PHP_SELF"]=>
string(9) "/test.php"
["REQUEST_TIME_FLOAT"]=>
float(1589352790.0336)
["REQUEST_TIME"]=>
int(1589352790)
}
対処法
.htaccess でサーバー変数 “HTTPS” 設定
SetEnvIf X-Forwarded-Proto "https" HTTPS=on
SetEnvIf X-Forwarded-Proto "http$" HTTPS=off
wp-config.php でサーバー変数 “HTTPS” 設定
if ( ! empty( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https' ) {
$_SERVER['HTTPS']='on';
}
“HTTPS” 設定後のサーバー変数($_SERVER)確認
“HTTPS”の追加を確認
["HTTPS"]=>
string(2) "on"
$_SERVER すべてを var_dump() で出力
array(57) {
["LSPHP_ENABLE_USER_INI"]=>
string(2) "on"
["PATH"]=>
string(28) "/usr/local/bin:/usr/bin:/bin"
["TEMP"]=>
string(4) "/tmp"
["TMP"]=>
string(4) "/tmp"
["TMPDIR"]=>
string(4) "/tmp"
["PWD"]=>
string(1) "/"
["HTTP_ACCEPT"]=>
string(74) "text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8"
["HTTP_ACCEPT_ENCODING"]=>
string(17) "gzip, deflate, br"
["HTTP_ACCEPT_LANGUAGE"]=>
string(23) "ja,en-US;q=0.7,en;q=0.3"
["HTTP_AUTHORIZATION"]=>
string(22) "Basic aHVtb3VyOnR1cA=="
["CONTENT_LENGTH"]=>
string(1) "0"
["HTTP_COOKIE"]=>
string(48) "uk5e61cdc56fbe2=29f0bf17dda82e5f719940b294fc42a7"
["HTTP_HOST"]=>
string(21) "example.com"
["HTTP_PRAGMA"]=>
string(8) "no-cache"
["HTTP_USER_AGENT"]=>
string(78) "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:76.0) Gecko/20100101 Firefox/76.0"
["HTTP_CACHE_CONTROL"]=>
string(8) "no-cache"
["HTTP_X_REAL_IP"]=>
string(15) "192.168.0.1"
["HTTP_X_FORWARDED_PROTO"]=>
string(5) "https"
["HTTP_X_FORWARDED_HOST"]=>
string(21) "example.com"
["HTTP_X_FORWARDED_PORT"]=>
string(3) "443"
["HTTP_UPGRADE_INSECURE_REQUESTS"]=>
string(1) "1"
["HTTP_GEOIP_ADDR"]=>
string(15) "192.168.0.1"
["HTTP_GEOIP_CONTINENT_CODE"]=>
string(2) "AS"
["HTTP_GEOIP_COUNTRY_CODE"]=>
string(2) "JP"
["HTTP_GEOIP_COUNTRY_NAME"]=>
string(5) "Japan"
["UNIQUE_ID"]=>
string(27) "XruZbBMF3c5oLeqdsUL0@AAAAG8"
["GEOIP_ADDR"]=>
string(15) "192.168.0.1"
["GEOIP_CONTINENT_CODE"]=>
string(2) "AS"
["GEOIP_COUNTRY_CODE"]=>
string(2) "JP"
["GEOIP_COUNTRY_NAME"]=>
string(5) "Japan"
["SERVER_SIGNATURE"]=>
string(0) ""
["SERVER_SOFTWARE"]=>
string(6) "Apache"
["SERVER_NAME"]=>
string(21) "example.com"
["SERVER_ADDR"]=>
string(9) "127.0.0.1"
["SERVER_PORT"]=>
string(4) "8080"
["REMOTE_ADDR"]=>
string(15) "192.168.0.1"
["DOCUMENT_ROOT"]=>
string(48) "/home/cXXXXXXX/public_html/example.com"
["REQUEST_SCHEME"]=>
string(4) "http"
["CONTEXT_PREFIX"]=>
string(0) ""
["CONTEXT_DOCUMENT_ROOT"]=>
string(48) "/home/cXXXXXXX/public_html/example.com"
["SERVER_ADMIN"]=>
string(14) "root@localhost"
["SCRIPT_FILENAME"]=>
string(57) "/home/cXXXXXXX/public_html/example.com/test.php"
["REMOTE_PORT"]=>
string(5) "30794"
["SERVER_PROTOCOL"]=>
string(8) "HTTP/1.1"
["REQUEST_METHOD"]=>
string(3) "GET"
["QUERY_STRING"]=>
string(0) ""
["REQUEST_URI"]=>
string(9) "/test.php"
["SCRIPT_NAME"]=>
string(9) "/test.php"
["SITE_GUARD"]=>
string(3) "off"
["HTTPS"]=>
string(2) "on"
["REMOTE_USER"]=>
string(6) "analyzegear"
["AUTH_TYPE"]=>
string(5) "BASIC"
["PHP_AUTH_USER"]=>
string(6) "analyzegear"
["PHP_AUTH_PW"]=>
string(3) "xxxxxx"
["PHP_SELF"]=>
string(9) "/test.php"
["REQUEST_TIME_FLOAT"]=>
float(1589352812.4079)
["REQUEST_TIME"]=>
int(1589352812)
}
コメント
情報ありがとうございます、助かりました。
役に立てて良かったです!