さくらサーバーで運用しているWordPressをSSLしたときのあれこれ(その1)

このブログは2016年から運用しているように書いていますが、実際には2017年下旬に作り直して掲載しています。
それまではめんどくさいのでSSL非対応でやってきたんですが、ちょっと勉強のつもりでWordpressを再構築してSSL対応でワッショイ!と思い立って、運用・構築したときの備忘録

  • 独自ドメインは取得済みだったので、これは問題なし。
  • SSL(正式にはSNI SSLと言うらしい)の設定はコントロールパネルから一発で取得(あら簡単ね)。
  • ディレクトリのルートに適当なhtmlファイル作ってhttp:// でも https:// でもアクセスできることを確認。
  • 簡単インストールでWordpressをインストール&セットアップ(この時点ではWPの設定ではhttp://www.newton-designing.com/)
  • マニュアルに従って「【WordPress】常時SSL化プラグイン」をインストール。

と以上のことをやって、さすが「さくら」。プラグインまで用意して、いたれりつくせりだなー、と思ってたんですが、そうは問屋が降ろさない。というかこちらがやりたいことをするにはちょっと工夫が。

http://www.newton-designing.com/ → https://www.newton-designing.com/ へのリダイレクト

これはもちろんホームだけじゃなくって、
http://www.newton-designing.com/hoge.html → https://www.newton-designing.com/hoge.html
ということがやりたい。

このあたりは、先人たちが各種ブログに書いてくださっているので、それを真似て、


RewriteEngine On
RewriteCond %{REQUEST_URI} !^/robots.txt$
RewriteCond %{REQUEST_FILENAME} !404error.html$
RewriteCond %{REQUEST_FILENAME} -f [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteCond %{ENV:HTTPS} !^on$
RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]

この記述をrootの.htaccessに記述するわけです。

RewriteCond %{HTTP:X-SAKURA-FORWARDED-FOR} ^$
このあたり、かなり鬼門ですね〜。なんだろこの独自仕様w。

さらに、さくらの簡単インストールでWordpressをインスト―ル済みだと、すでにファイルが出来上がっているので、それに追加するんですが…の記述はすでに書いてあると思います。結論から言うと、ファイルの終わりの方に
# END WordPress
ってあるなら、その次にこのコードを記述するのが良さそうです。
.htaccessは上の行から順番に処理を進めていく(と理解しています)ので、Wordpress的なRewrite処理を終えてからhttp→httpsの処理をしたほうが、うまくいくみたいです。

さくらのWordpressうまくいくか、と思いきや、そうも行かないみたいで、次の記事に続きます。