WordPressのhttpsの不思議

2020年1月16日

まるっとプランで今回ドメインも借りてるわけですが、普通にWordPress(以下WP)を入れると、最初はHTTPでした。借りてるドメインではなく、VALUE-SERVERのサブドメインで、HTTPでアクセスする形ということです。

誰も見てないだろうし、何も守るものもないわけですが、一応認証してるサイトなので、いつまでもHTTPというわけにも行きません。そこで、このWPも借りてるドメインで、HTTPSでアクセスする形に対応してみました。

対応と言っても何をしたわけではなく、ブラウザのアドレスバーのスキームとホスト名部分を変えただけです。

ところが

普通にHTTPSでアクセスしてみると、スタイルシートの適用が全くされてない素のHTMLが表示されています。

よくよく見るとHTMLからリンクされているCSSなどが根こそぎHTTP + VALUE-SERVERのサブドメインになっています。chromeは優秀なのかこれを良しとせずエラーで弾き、GETしないため素のHTMLが表示されたというわけです。

PHPはよく知らないので結構探しましたが、WPはURLを2つ持っており、それをリンク先生成時のアドレスに使用しているため、 そうなっているようです。管理画面でいうと、設定の、

  • WordPress アドレス
  • サイトアドレス

です。これらはファイルではなく、Databaseのwp_optionsテーブルに保管されていました。

解決

なので、管理画面からこれらのURLをhttpsの所定のURLに書き換えることにより、リンク先のURLもその下のURLになり、無事スタイルも適用されました。

でもなんでアクセスされたURLが分かっているのに、わざわざ固定のURLからリンク先を生成しているのか?やや不思議な気持ちです。まあ負荷分散とかした際にリクエストURLが消えてしまうとかセキュリティ上の理由とかなんでしょうね。いずれにしても設定で出来るのではなく強制なのが気持ち悪いところです。