開発環境のサーバーから本番サーバーに移設していざ確認しようとしたら表示しなかった。ブラウザに表示する文字は以下のような感じだった。

ページの自動転送設定が正しくありません

今までの経験上では、これは恐らくURLからのリダイレクトが何かしらおかしくて無限ループしてる感じ。ネットで調べてよく出てくるのはSSL化した場合に起きてることが多そう。

htaccessにてhttpで来た場合はhttpsのURLで再度読み込みするという問題なのかな?と思ったけど、元々開発環境のサーバーは外部サーバー利用してhttpsついたURLだったから違うようだ。次にDBにてwp_optionのURLを本番サイトURLに変更してみたが、無限ループするという同じ結果となった。

実は契約しているサーバー上、SSLなしのディレクトリとSSLありのディレクトリが別のため、お互いがhttpsあるかないかによるリダイレクトをサーバー側でやってるのかな?とも疑問を残し、もう一つ試しにfunctions.phpに以下のものを追記するということしてみると、上手くいった!

remove_filter('template_redirect', 'redirect_canonical');

なにが悪かったのかは後で調査するとして、無限ループの解決策の一つとしてこの記述は覚えておこう。

参考サイト
mkoba のお部屋 : DREAMHIVE Staff Blog
https://blog.dreamhive.co.jp/mkoba/?p=4734