作業内容と条件など
このサイトをこれからのサイト運営に必須と言われるHTTPSにし、さらにSEO的に効果があると言われるURL正規化をした手順を備忘録的に記しておきます。
まず前提条件として
・さくらのレンタルサーバーを利用しています。
・無料のサブドメインを利用しています。
・このサイトはWordPressを利用しています。
・WordPressのテーマはCocoonを利用しています。
・さくらの無料SSLを利用しました。
となっています。
このページのURLは https://billy.x0.com/ssl/
となっているはずです。
ブラウザのアドレスバーに
https://www.billy.x0.com/ssl/
https://billy.x0.com/ssl/
http://www.billy.x0.com/ssl/
のどれを入力しても
https://billy.x0.com/ssl/
になります。
これはサイトを常時SSL化して、wwwなしに統一(URL正規化)して
このアドレスにリダイレクトされる(強制的に飛ばされる)ようにした結果です。
また、Chrome のアドレスバーにちゃんと鍵マークが付くように確認も必要です。
Chrome の場合はアドレスバーの https:// の部分は省略されますが、鍵マークが付いていれば https になっているということです。
こういった作業は知識も乏しく不慣れなのでかなり時間が掛かりましたが、また同じ作業をする時に役立つよう以下に記録します。
SSLを設定して、常時SSL化する
無料SSLを利用する
さくらのレンタルサーバーを利用しているので、まずコントロールパネルにログインします。さくらのサーバコントロールパネルは新旧があります。見やすいのは新コントロールパネルですが、今回は多少は慣れている旧パネルを使いました。
「ドメイン設定」の「ドメイン/SSL設定」をクリックします。
今回設定するドメインの「変更」ボタンをクリックします。
「4. SSLの利用をお選びください」で「共有SSLを利用する」をクリックして、「送信」をクリックします。
「ドメイン詳細設定ー完了」が表示されればOKです。
これで
https://www.billy.x0.com/ssl/
https://billy.x0.com/ssl/
を利用できるようになりました。
WordPressで常時SSL化する
ここまでの作業ではまだ http にもアクセスできる状態です。http へのアクセスも https に飛ぶように(常時SSL化)しなければなりません。
常時SSL化ですが、さくらのレンタルサーバーでWordPressを運営している場合はプラグインを用いて簡単に設定することができます。このプラグインを使うことで、
・.htaccessを書き換えて自動的にhttpsのURLへリダイレクト
・サイト内の投稿のURLをhttpからhttpsに置換
・サイト設定のサイトURLをhttpからhttpsに置換
を自動的に行なってくれるので、おすすめです。
詳しい使い方はこちらで確認頂くほうが分かりやすいと思いますので、ここでは割愛いたします。
作業が完了すれば、HTTPへのアクセスもHTTPSに飛ぶので、アクセスできるURLは
https://www.billy.x0.com/ssl/
https://billy.x0.com/ssl/
の2つになります。
これを次の作業で WWW なしのURLに一本化(URL正規化)します。
URL正規化 WWWなしに統一する
WWWなしに統一するために、.htaccess を編集します。このファイルはちょっとでもルールから外れるとエラーが発生してサイトにアスセス出来なくなるので、緊張感をもって臨みます。編集する前に必ずバックアップを取っておき、エラーになった場合はすぐに書き戻せるようにしておきましょう。
私はFTPソフトとテキストエディタで作業しましたが、何度やってもエラーばかりでした。原因は文字コードだったようです。.htaccess の文字コードはUTF-8(BOM無し)、改行コードはLFに設定しなければいけませんが、使っていたのがWindowsのメモ帳でこの文字コードに対応していなかったのです。原因が分かってサクラエディタに変更し、無事設定を終えることができました。
ただ後で気付いたのですが、この作業はサーバコントロールパネルからファイルマネージャーに入って直接編集作業した方が断然楽でした。ですので、ここではファイルマネージャーでの作業として記録しておきます。
まずはコントロールパネルからファイルマネージャーへ。
.htaccess は各階層に作ることができますが、ここで作業するのはWordPress をインストールしてあるフォルダと同じ階層にあるファイルです。
この .htaccess ファイルをダブルクリックすると左下のプレビューウィンドウにコードが表示されます。編集するにはプレビューウィンドウの右上、ファイルを編集するボタンをクリック。編集ウィンドウが立ち上がります。
ここまでの作業が終わっていれば
# BEGIN Force SSL for SAKURA
から
# END Force SSL for SAKURA
と、
# BEGIN WordPress
から
# END WordPress
のコードが書かれていると思います。
前者はさくらの常時SSL化プラグインが書き込んだコード、後者は WordPress をインストールしたときに作成されたコードです。
- # BEGIN Force SSL for SAKURA
- # 常時HTTPS化(HTTPSが無効な場合リダイレクト)
- <IfModule mod_rewrite.c>
- RewriteEngine on
- RewriteCond %{HTTPS} !on
- RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
- </IfModule>
- # END Force SSL for SAKURA
- # BEGIN WordPress
- <IfModule mod_rewrite.c>
- RewriteEngine On
- RewriteBase /
- RewriteRule ^index\.php$ – [L]
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule . /index.php [L]
- </IfModule>
- # END WordPress
WWWなしに統一するためのコードはこれらの上に書き込みます。記述するコードは、こちらのサイトを参考にさせて頂きました。コピーペーストします。1行目から5行目が追加分です。
- <IfModule mod_rewrite.c>
- RewriteEngine On
- RewriteCond %{HTTP_HOST} ^www\.(.*)$ [NC]
- RewriteRule ^(.*)$ https://%1/$1 [R=301,L]
- </IfModule>
- # BEGIN Force SSL for SAKURA
- # 常時HTTPS化(HTTPSが無効な場合リダイレクト)
- <IfModule mod_rewrite.c>
- RewriteEngine on
- RewriteCond %{HTTPS} !on
- RewriteRule .* https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
- </IfModule>
- # END Force SSL for SAKURA
- # BEGIN WordPress
- <IfModule mod_rewrite.c>
- RewriteEngine On
- RewriteBase /
- RewriteRule ^index\.php$ – [L]
- RewriteCond %{REQUEST_FILENAME} !-f
- RewriteCond %{REQUEST_FILENAME} !-d
- RewriteRule . /index.php [L]
- </IfModule>
- # END WordPress
そして編集ウィンドウの保存ボタンを押してから閉じます。
以上で作業は終了。ブラウザで確認する時は、一旦キャッシュを削除してからの方が間違いないようです。
なお、以上の作業は自己責任でお願いします。.htaccessを触った結果、サイトにアクセスできなくなっても当方は責任を負えません。作業は慎重の上にも慎重に。
コメント