Web blog WEBブログ

下層ページのリダイレクトが効かない!ときの備忘録(WordPress編)

2021.06.22

※この記事は2021年06月22日時点の情報をもとに作成されました。

こんにちは。ディレクターの寺井です。

よくあるご要望でhttpページをhttpsページにリダイレクトさせてほしいというものがあります。
トップページはリダイレクトされているのに下層ページはリダイレクトされない!と焦ったときのためにご活用くださいませ。

今回はリダイレクトが効かない!ときの備忘録として、些細なことですがとても大切なポイントです。
それでは見ていきましょう!!

WordPressデフォルトの「.htaccess」

まずWordPressのデフォルトの「.htaccess」が下記の通りです。
ここにリダイレクトさせるための追記をしていきます。

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

 

トップページしかリダイレクトされない記述

一般的に追記と言えば、デフォルト部分の下部に記述する方が多いかと。
これが意外と罠だったりします。

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

 

上記のような記述の場合、トップページはリダイレクトされます。
しかし下層ページを確認してみるとリダイレクトされていないことに気付きます。
なんで?なんで?ちゃんと記述したはず…間違っていないよねと
何度も記述したものを見直し始めます。見直しては記述、アップして確認する…エンドレスループです。

そこで、このエンドレスループから抜け出すポイントをご紹介いたします!!

重要なことは「.htaccess」記述する順番にあり

その最も大切なポイントは

記述する順番です!!

これが意外と盲点だったりします。
下記のように「# BEGIN WordPress」より上部に記述すれば
下層ページもリダイレクトされるようになります。

RewriteEngine on
RewriteCond %{HTTPS} off
RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [R,L]

# BEGIN WordPress
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress

 

たったこれだけのこと、記述の順番を正しくすることで慌てふためくことがなくなりますよ。
簡単だけど大切なポイントです。

まとめ

リダイレクト設定は「.htaccess」で簡単にできます。
しかし記述の順番を誤ってしまうと、トップページのみリダイレクトされるだけとなり
下層ページのリダイレクトをどうしたらよいか右往左往することになります。

今回ご紹介した記述の順番しっかり覚えておきたいですね!!
簡単なポイントだからこそ忘れがちですが、重要ポイントです。

ご相談・カスタマイズご依頼

弊社では上記ブログ内容にある修正・カスタマイズのご依頼も承っております。
ご自身で行ってみて上手くいかない場合などこちらよりお気軽にご相談ください。

寺井大樹

この記事を書いた人 寺井 大樹 ディレクター

無料相談窓口