SEO対策

【WP】.htaccessを編集してhttpをhttpsにリダイレクトする

https化が重要視されている昨今、Wordpressで設定したばかりのサイトでは、まだURLがhttpのままになっている方が多いのではないでしょうか。

この記事では、.htaccessを編集して、httpのURLにアクセスしたユーザーを、httpsのURLにリダイレクトする方法をご紹介します。

.htaccessとは

.htaccessとは、 Webサーバーをディレクトリ単位で制御するためのファイルで、 リダイレクトやBASIC認証、404エラーページの作成を行えます。
引用:.htaccessとは

https化の重要性

https化はGoogleにおいても重要視しており、2018年2月には、下記のようなニュースも出てきている。

近くGoogle Chromeは、HTTPSの暗号化を使用していない全サイトにマークをつける。

過去数年、GoogleはHTTPSの使用を強力に推進してきており、ブラウザー、サーバー間の通信中にデータが他社に傍受されないように努めてきた。

近く公開されるアップデートからは、入力フィールドの有無に関わらずHTTPサイトすべてが「安全ではない」と識別されるようになる。
引用:Google Chrome、非暗号化(HTTP)ページに”not secure” の警告を表示

今後、https化していないサイトは、検索順位が上がりにくくなったり、警告が表示されてユーザーが離脱するようになると考えられています。

.htaccessを書き換える

まずはじめに、.htaccessをリダイレクト処理の記述を入れる前と後の比較を見てみましょう。

リダイレクト処理追加前の.htaccess

# 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

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
</IfModule>

# 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

【ロリポップ版】httpsの有効化&.htaccessの変更方法

読者の中には、「.htaccess」事態しらない方がいると思いますので、いちから手順を説明します。今回は私が使用しているサーバーのロリポップで行いますが、他のレンタルサーバーであっても、だいたい同じ手順になるかと思いますので、ご参考にしてください。

ロリポップへログイン

ロリポップの管理画面へログインします。

独自SSL(無料)を設定する

セキュリティ > 独自SSL証明書導入 を開く

https化したいドメインにチェックをして、「独自SSL(無料)を設定する」ボタンを押す。

ロリポップFTPへのログイン

「ロリポップFTP」へログインします。ログイン方法には2種類あります。

  1. ロリポップFTPへ直接ログインする
  2. ロリポップの管理画面 > サーバーの管理・設定 > ロリポップ!FTP の順でログインする

.htaccessファイルの表示

ログインをすると、サーバー上に置かれているファイルやフォルダが表示されます。今回修正するサイトのフォルダまで行くと、1階層目に.htaccessがあるので、クリックします。

.htaccessを書き換える

下記を「RewriteBase /」の後に追記してください。

RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteRule ^index\.php$ - [L]

だいたい追記した場合は、下記のようになっていると思います。

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
</IfModule>

# END WordPress

これでhttp://~にアクセスすると、自動的にhttps://~にリダイレクトされるようになりました。