WordPressで、マルチサイト+SSL環境でのリダイレクトループの対処は $_SERVER

2016/10/15 20:28

WordPress 4.6.1で、マルチサイト化し、SSLの環境でサイトをインストールしたのですが、なぜか子ブログがリダイレクトループでトップページも、管理画面も表示されない・・・

解決策は、意外なところにありました。

解決策を検索してみると、マルチサイトでのリダイレクトループとして多く言及されているのが、.htaccessの設定不備。

マルチサイトにするときに記述する、.htaccessの RedirectRuleにバグがあり、リダイレクトループに陥るというもの。しかし、これは 4.6.1では既に解消されていました。

また、マルチサイトにするときに元の .htaccessの記述を削除せずに「追記」をしてしまうという例。これも、問題なく「上書き」をしていました。

いったんマルチサイト化をやめてみたり、データベースを直接編集したり等、あれこれやってもなかなか解決できなかったのですが、こちらのサイトで解決策を発見。

wp-config.phpを修正する

wp-config.phpの末尾に下記の記載を追加します

$_SERVER['HTTPS'] = 'on';

まさにこの方法で解決。httpと httpsの間でリダイレクトが発生し続けていたようです。うむむ、はまりました。