【WordPress+nginx】リダイレクト処理でURLにポート番号が付加されてエラーになる

件名そのままですが、かなりハマったので忘れないうちにメモ。

事象

nginxでWordPressを動かしていて、Facebookアカウントでのログインを実装していたところ、リダイレクト処理でエラーになってしまう。

原因

確認するとリダイレクトURLに、なぜかポート番号が自動的に付加されていることが原因だと判明。(ポート番号を削除すれば正常に動く)

ネットワークの作成 - WordPress Codex 日本語版

このページはマルチサイト化の説明ページで、今回私はマルチサイトにはしていない。しかしポート番号の制約があるっぽい事が書かれているのは、これくらいだった。とにかくポート無しにすれば正常に動くので、その原因を調べる。

解決法

結論からいうと、nginxの設定が原因。この情報に辿り着くまで結構時間がかかってしまった。

nginx のリダイレクト時に URL にポート番号を含めないようにする port_in_redirect | ウェブル

server {
      port_in_redirect off;
}

この設定を追加するだけで、あっさり解決しました。もし同じようにハマる人が今後いたら、少しでも参考になると幸いです。