サイトをSSL化したのにWordPressのメディアURLがhttpのままコピーされる原因と解決手順を解説します。
メディアURLがhttpのままになる主な原因
SSL証明書を導入してWebサイト自体が https:// で表示されていても、WordPress内部の管理データが更新されていない場合、メディアライブラリは http:// のURLを発行し続けます。
主な原因は以下の3点です。
| 原因 | 発生状況 | 主な対処法 |
|---|---|---|
| 一般設定のURL未更新 | 管理画面の登録URLが http:// のまま |
「設定 > 一般」からURLを変更 |
| 構成ファイルでの固定 | wp-config.php 内で定数が定義されている |
wp-config.php の記述を修正 |
| リバースプロキシのSSL認識不備 | Cloudflare等のCDNやロードバランサーを経由 | HTTPS通信ヘッダー判定コードを追記 |
メディアURLをhttpsへ修正する4つの手順
メディアURLを正常な https:// に変更するための手順を順番に解説します。
手順1:一般設定のURLをhttpsに変更する
管理画面からサイトURLの設定を変更します。
- WordPress管理画面の左メニューから 「設定」 > 「一般」 を開きます。
- 以下の2項目を確認します。
- WordPress アドレス (URL)
- サイトアドレス (URL)
- 先頭が
http://になっている場合は、両方ともhttps://に変更します。 - 画面最下部の 「変更を保存」 をクリックします。
手順2:wp-config.phpの記述を確認・修正する
管理画面のURL変更欄がグレーアウトして編集できない場合は、サーバー上の wp-config.php ファイル内でURLが直接固定されています。
FTPソフトやサーバーのファイルマネージャーを使用して wp-config.php を開き、以下の記述を探して https:// に修正します。
define( 'WP_HOME', 'https://ai.joho.info' );
define( 'WP_SITEURL', 'https://ai.joho.info' );
手順3:リバースプロキシ経由時のSSL認識コードを追記する
CloudflareなどのCDNやロードバランサー(リバースプロキシ)を使用している環境では、サーバー本体への通信が内部的にHTTP扱いとなり、WordPressがHTTPS接続を正しく判定できないケースがあります。
この場合、wp-config.php の /* That's all, stop editing! Happy publishing. */(または編集終了の指示コメント)より上の行に、以下の判定コードを追記します。
if ( isset( $_SERVER['HTTP_X_FORWARDED_PROTO'] ) && $_SERVER['HTTP_X_FORWARDED_PROTO'] === 'https' ) {
$_SERVER['HTTPS'] = 'on';
}
手順4:既存記事内の画像URLをデータベースで一括置換する
設定変更後に新しく取得するURLは https:// になりますが、過去に作成した記事内に直接埋め込まれている http:// の画像URLは自動更新されません。そのまま放置すると、ブラウザ上で混在コンテンツ(Mixed Content)の警告が表示される要因になります。
データベース内のURLを一括置換するプラグイン(例:Better Search Replace など)を使用し、置換処理を実行します。
| 項目 | 入力例 |
|---|---|
| 検索文字列 (Search for) |
|
| 置換文字列 (Replace with) |
|
関連ページ


コメント