へっぽこコーダーの備忘録

phpやらjavascriptやら、使った技術をすぐに忘れちゃうから、おぼえがき程度に書いていきまーす
2025.03.11

お名前.comサーバでWordPressのテーマディレクトURLがhttpsにならなくて困った!

お名前ドットコムサーバーにWordpressサイトをアップしたときに、SSL化させるとなぜかサイトが崩れるし管理画面にログインできなくなるし、めちゃくちゃ困ったので備忘録!

まず、原因はget_template_directory_uri()で出力していたテーマディレクトリのプロトコルが、なぜか「http」のまま切り替わっていないことだった。
でも、サイトURLも「https」に切り替えているのに、なぜか出力されるURLは「http」のままで、対処法がわからない。。。

最終的に画面にこんなメッセージが表示され始める。


An error occurred.

Sorry, the page you are looking for is currently unavailable.
Please try again later.

If you are the system administrator of this resource then you should check the error log for details.

Faithfully yours, nginx.

よくよく調べるとお名前ドットコムのウェブサーバーが「nginx」になっている模様。
どうやらnginxのプロキシを経由すると、httpsのリクエストがhttpとして、ウェブサーバに伝えられてしまうらしい。

ちなみに、作業途中では、wordressにはhttpでリクエストが届くからクライアント側にhttpsで接続しろよとリクエストを差し替えし、
クライアントがまたhttpsでリクエストを送るけど、またwordpressが差し替えすという、ループエラーも起っちゃいました。

とりあえず、wordpressにhttpsリクエストだと認識させてやる必要があるので、
wp-configに以下のコードを書いて対応。


/* ここから追加箇所 */
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https') {
    $_SERVER['HTTPS'] = 'on';
}
/* ここまで追加箇所 ↓の部分より上に記載 */

/** Sets up WordPress vars and included files. */

require_once ABSPATH . 'wp-settings.php';