エックスサーバーには独自SSLを無料かつ無制限で利用できるサービスが付いています。
ブログがhttpsになっていないと、安全に接続されないだけでなく、検索エンジンからも良い評価を得ることが出来ません。なのでこれは、すぐに設置したほうがいいと思います。
エックスサーバーなら、至って簡単にSSL証明書を追加することが出来ます。でも、これだけの対応では、完全にSSL化されないことがあります。
というのは、SSL化されていない内部リンクや画像リンクがある場合、そのURLをhttpsに置換しないとSSLの表示にはならないからです。
また、元々のURLが転送されるようにリダイレクトの処置も必要です。
Photo by Erda Estremera
そこで今回は、エックスサーバーでhttpのサイトをhttpsに移行する全行程を紹介します。
このページの目次
httpをhttpsにする全行程の手順
まずは、SSL化するための手順について説明します。
- ブログのバックアップをとる
- 独自SSLを設定する
- WordPressでアドレスを変更する
- 既存の内部リンクや画像リンクのURLを置き換える
- 301リダイレクトを設定する
- wwwのあるURLとないURLを統一する
httpのリンクをhttpsに変更する前の準備
まずはバックアップを取っていきましょう。絶対に失敗しないという保証はないので、いつでも元の状態に戻せるように準備しておいた方がいいです。
話の本筋からそれてしまいますが、このブログはなんども真っ白という状態になっています。でも、そのたびにバックアップには救われているので、自信をもっておすすめします。
バックアップは本当に重要です。「何となく大丈夫!」と思うときに限って、けっこう失敗しているので、必ずしておいてくださいね。後悔することはないと思います。
もし、バックアップの準備をしていないという方は、バックアップ用プラグインの設定方法とバックアップの仕方をこちらの記事で確認できます。
エックスサーバーで独自SSLを設定する
それでは、エックスサーバーのサーバーパネルにログインします。
SSL設定をクリックします。
独自SSLを設定するドメインを選択します。
画面ではすでに独自ドメインが設定されていますが、これから独自ドメインを設定する場合は、「独自SSL設定の追加」をクリックします。
するとSSL設定を追加する画面に切り替わるので、SSLを設定する対象ドメインが表示されていることを確認してから「独自SSL設定を追加する(確定)」をクリックします。
上の画面上にはありませんが、ここに「CRS情報(SSL証明書申請情報)を入力する」という表示があります。でも、チェックは特に必要ないと思います。
SSL新規申請取得中です。しばらくお待ちください。のあと、「www.選択したドメイン名.com」に独自SSL設定を追加しました。と表示されたらSSL設定の完了です。
SSL設定の一覧にアドレスが表示されますが、設定が反映されるまでには数十分から1時間くらいかかることがあります。
WordPressの一般設定でアドレスを変更する
次にワードプレスにログインしてアドレスを変更します。管理画面の「設定」から「一般」をクリックします。
このブログならWordPressアドレス(URL)とサイトアドレス(URL)が下のように表示されています。(ドメイン名はSSLを設定したドメイン名です。)
それを次のように変更します。ここにはwwwも入れていますが、なくてもO.K.です。wwwのある・なしは検索順位には影響しません。wwwを付けるかどうかは好みの問題になります。(笑)
最後に「変更を保存」をクリックしたら、ワードプレスの設定は完了です。
内部リンクをhttpsに置き換える
内部リンクや画像リンクをすべてhttpsに置き換えます。もちろん、一つひとつのページを手動で編集することもできますが、ものすごく時間がとられることになるかと思います。
そこで、Search Regexというプラグインで一括変換する方法を説明します。
まずは「プラグイン」から「新規追加」をクリックしてキーワードにSearch Regexと入力します。目的のプラグインが見つかったら「今すぐインストール」をクリックします。
ここで使うのはSearch Regexですが、そのとなりにReal-Time Find and Replaceというプラグインが表示されているので違いを説明します。
Search Regexは投稿や固定ページのデータを一括検索して置き換えるプラグインです。
一方、Real-Time Find and Replaceは、データそのものを書き換えるのではなく各ページのソースやテキストをリアルタイムで検索変換するためのプラグインになります。ですので、Search Regexを使っていきましょう。
続けて「有効化」をクリックします。
次に管理画面のツールから「Search Regex」をクリックします。
画面を次のように設定します。
- source:Post content
- Limit to:No limit
- Order By:Accending
- Search Pattern:http://buzzclub.site(SSL化する前のURL)
- Replace pattern:https://www.buzzclub.site(SSL化した後のURL)
- Regex:どれもチェックしない
(注意)ここで使っているURLはこのブログのURLです。なのでここにはあなたのURLを記入して下さい。このブログはwwwを付けているので上のようにしていますが、wwwなしでも問題はありません。
次に「Replace」をクリックします。すると下のように「Result」が表示されます。
置換まであと一歩ですが、ここではまだ実行されていません。置き換える前に、ここは一つひとつ確認して下さい。下はサンプルなので2つしか表示されていませんが、通常ものすごく数が多くなるのではないかと思います。
なので中には、変換の必要がないURLがあるかもしれません。しっかり確認しておかないと意図しないURLも変換されてしまいますから要注意です。
ちなみに、グリーンの表示が変換前、そしてブラウンの表示が変換後になっています。
画面右端の「edit」をクリックするとそのページにジャンプすることが出来きるので、置き換える必要のないURLのあるページは、事前に編集を加えるかメモしておいて後で修正しても良いかと思います。
- 置き換えるURLに誤りはないか?
- 置換後のURLに誤りはないか?
- 置換後のURLは真っ当な表記になっているか?
といったことに気を付けて確認してみてくださいね。
次はいよいよ置き換え実行です。確認が済んだら「Replace&Save」をクリックします。たまに、置換漏れになっていることがあるので、ここは2回くらい行ったほうが良いかもしれません。
「XX Occurrences replaced 」と表示されたら、これで一括置き換えの完了です。
.htaccessに301リダイレクトを追記する
次に、301リダイレクトの処置をします。これをすることによってhttpに来ていたアクセスを自動でhttpsに転送することが出来ますし、これまで検索エンジンから得ていた評価も引き継ぐことが出来ます。
おすすめはFTPを使った編集方法です。FTPでサーバーにログインしてから.htaccessファイルをダウンロードしたのち、コピーにタグを追記してサーバーにアップロードします。
.htaccessファイルの編集に限らずFTP接続にするとファイルのアップロードやダウンロードが簡単です。まだFTPを使っていないという方は、ダウンロードの方法と使い方を下の記事で紹介しています。
⇒FileZillaのダウンロード方法と使い方(MACも対応)
セキュリティが気になるという方には、こちらの記事がおすすめです。
⇒エックスサーバーにFileZillaでSFTP接続を設定する方法
ただ、FTPを使わない場合でも.htaccessファイルを直接ダウンロードすることは可能です。このファイルは非常に重要なファイルですから編集に失敗した場合、ブログにアクセス出来なくなるといったことが起こります。
ですので、失敗しても元の状態に戻せるように必ずバックアップファイルは取って下さい。
FTP接続でのダウンロードは上の記事で紹介しているので、ファイルマネジャーからのダウンロードを説明します。
エックスサーバーから.htaccessファイルを直接ダウンロードする
まずは、エックスサーバーのインフォパネルからログインします。
「ご契約一覧」にあるファイルマネジャーの「ログイン」をクリックします。
.htaccessファイルにタグを追記するドメインを選択します。
public_htmlをクリックします。
.htaccessをクリックします。
これでダウンロードの完了です。
.htaccessファイルのコピーを作成して下のタグを先頭部分にコピペします。
1 2 3 4 5 | <IfModule mod_rewrite.c> RewriteEngine on RewriteCond %{HTTPS} !=on [NC] RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L] </IfModule> |
このファイルを元のファイルに上書きします。これで301リダイレクトの設定は完了です。
エックスサーバーでは、サーバーパネルから.htaccessの編集をすることもできます。でも、ここで直接タグを編集することはまったくおすすめではありません。
ここまでの設定でSSL化になっていますが、もう一つタグを追記しておくと良いかもしれません。
wwwのあるURLとないURLを統一する
同じコンテンツのURLが「https://www.example.com/」と「http://example.com/」といったように2つ存在していることがあります。
ユーザーが見た場合、同じアドレスになりますが、検索エンジンは重複コンテンツと認識してしまう可能性があります。そこで「wwwあり」か「wwwなし」のどちらかにURLを統一するタグを.htaccessに追記します。
先ほど追記した301のタグの下に次のどちらかをコピペします。
「wwwあり」にする場合
1 2 3 4 | Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^example\.com$ RewriteRule ^(.*)$ http://www.example.com/$1 [R=301,L] |
「wwwなし」にする場合
1 2 3 4 | Options +FollowSymLinks RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.example\.com$ RewriteRule ^(.*)$ http://example.com/$1 [R=301,L] |
index.html(php)のありとなしを統一する
ドメインのURLを統一したら、追加でファイル名の「あり」と「なし」を統一しておくと良いかもしれません。通常、無しのほうが主流のようなので、なしで統一するタグを紹介しますね。
先ほど.htaccessファイルにwwwのある・なしを追記したので、その下に次のタグを追記します。
index.html(php)のありとなしの統一
1 2 3 4 | Options +FollowSymLinks RewriteEngine on RewriteCond %{THE_REQUEST} ^.*/index.(html|php) RewriteRule ^(.*)index.(html|php)$ http://%{HTTP_HOST}/$1 [R=301,L] |
URLのSSL化はこれで完了です。でもブラウザ別でSSL化されていなかったり、問題が生じていることもあります。なので、しっかりSSL化されているかブラウザ別に確認していきましょう。
その前に「301リダイレクト」が正常に機能しているか簡単にチェックするツールがあります。そこで設定が反映されているかどうか確認してみて下さい。
⇒Search Engine Friendly Redirect Checker