Help us understand the problem. What is going on with this article?

エックスサーバーでWordpressをSSL化(https)する時に無限ループでハマった

More than 1 year has passed since last update.

独自SSLが無料になったのでSSL化させた

ふとしたきっかけで自分のブログをSSL化したら無限ループでハマってしまいました。
今後のためにメモとして残しておきます。

基本的にはこちらの記事が詳しく解説されているので、大変参考になりました。
≫エックスサーバー独自SSLが無料!WordPressサイトをHTTPS化する方法

無限ループでハマる

上記のサイトを参考にほぼできるのですが、2箇所ほど無限ループでハマりました。

wp-config.phpを書き換えないとダメ

こちらの環境では wp-config.php も変更する必要がありました。
下記の2行を設定して強制的にhttpsにしないと無限ループが発生します。

wp-config.php
$_SERVER['HTTPS'] = 'on';
$_ENV['HTTPS'] = 'on';

.htaccessのリライト条件を変更しないとダメ

記事では下記のようになっていますが、こちらの環境では無限ループになりました。

.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

修正したものが下記になります。RewriteRuleはそのままでも良かったのですが念の為。

.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTP:X-Forwarded-Proto} !=https
RewriteRule ^/?(.*) https://%{HTTP_HOST}/$1 [R,L]
</IfModule>

これについては下記の記事が大変参考になりました。
≫AWS常時SSL リダイレクトループしない.htaccessの書き方

・ロードバランサが443へのアクセスを80へのアクセスに変換する
・.htaccess内の RewriteCond ${HTTPS} が永遠に on にならず、リダイレクトの度にRewriteRule が走ってしまう
元々のアクセスが https か http のどちらかが分かれば良いのだが、上記の挙動のせいで、https にリダイレクトしたとしても http からアクセスされたことになり、これが永遠に繰り返されてしまう。

おそらくエックスサーバーでもプランや契約時期によっては上記と似たような環境になっているものがあるのかもしれません。

とりあえず上記の設定で問題無くSSL化ができました。

ちなみにSSL化したブログはこちらです。
台湾旅行に興味ある方はぜひw
≫ちょっと台湾いってきます−台湾旅行ブログ−

追記:2016.07.31

Wordpressの予約投稿が失敗するようになりました……。

wp-cron.php はWordpress自身から呼び出すらしいですが、curlで試したらエラーになりました。キャッシュ系プラグインは停止しましたし、これくらいしか心当たりがないなぁと。

[***@sv*** public_html]$ curl --head https://go-taiwan.jp/wordpress/wp-cron.php
curl: (35) error:14077438:SSL routines:SSL23_GET_SERVER_HELLO:tlsv1 alert internal error

結果、サーバーで使用しているPHPが古いだけでした!w
5.5.30 → 5.6.22 にしたらあっさり解決W

追記:2017.02.16

Xserverのサーバー移行キャンペーンで新しいサーバーにしたら再び無限ループが発生しました。
.htaccessのリライトルールを戻したら解消されました。

以前のサーバーは下記のルールでダメでしたが、新サーバーではこちらで正解でした。

.htaccess
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away