ロリポップでhttp→httpsに301リダイレクトをする

2020-07-23

ロリポップでhttp→httpsに301リダイレクトをする

SSL化ができたら、httpからhttpsに301リダイレクトするよう設定を行います。
現状では非SSL(http://ドメイン名)とSSL(https://ドメイン名)両方のURLでアクセスできます。
両方のサイトは、検索エンジンからみれば同じコンテンツですがページは異なるので、どちらのページを評価すればいいのかが分からず、結果的にSEOでマイナスになることが考えられます。

検索エンジンにページの評価を統一させるには、301リダイレクト(恒久的な転送)の設定を行う必要があります。
301リダイレクトを設定すると、ユーザーまたはクローラーがhttpのページにアクセスしてきたら、自動的にhttpsのページに移動されます。
301リダイレクトの設定はワードプレスのルートにある「.htaccess」ファイルに、301リダイレクトの内容を記述します。
ロリポップの「ロリポップ!FTP」から「.htaccess」ファイルの編集をすることが可能です。

ロリポップ!FTPから「.htaccess」ファイルを編集する

ロリポップFTPでワードプレスの「.htaccess」の内容を見ると以下のような記述がみられます。

# BEGIN WordPress
# `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は
# 動的に生成され、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

次の記述を先頭に追加します。
301リダイレクトの内容です。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# BEGIN WordPress

最終的にワードプレスの「.htaccess」ファイルは、下記に記述になります。

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteCond %{HTTPS} !on
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
</IfModule>
# BEGIN WordPress
# `BEGIN WordPress` から `END WordPress` までのディレクティブ (行) は
# 動的に生成され、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」ファイルに301リダイレクトの内容を記述後、正常に301リダイレクトの処理がされているかサイトにアクセスして確認をします。
ブラウザのアドレスバーに非SSL(http://ドメイン名)のURLを入力して、サイトにアクセスします。
301リダイレクトの処理が正常にされていれば、SSL(https://ドメイン名)に転送されます。

301リダイレクトの設定をしても、http→httpsに転送されない場合は、ブラウザのキャッシュが原因かもしれません。
ブラウザのキャッシュを消去を試してみます。