2021.06.22
※この記事は2021年06月22日時点の情報をもとに作成されました。
こんにちは。ディレクターの寺井です。
よくあるご要望でhttpページをhttpsページにリダイレクトさせてほしいというものがあります。
トップページはリダイレクトされているのに下層ページはリダイレクトされない!と焦ったときのためにご活用くださいませ。
今回はリダイレクトが効かない!ときの備忘録として、些細なことですがとても大切なポイントです。
それでは見ていきましょう!!
まず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]
上記のような記述の場合、トップページはリダイレクトされます。
しかし下層ページを確認してみるとリダイレクトされていないことに気付きます。
なんで?なんで?ちゃんと記述したはず…間違っていないよねと
何度も記述したものを見直し始めます。見直しては記述、アップして確認する…エンドレスループです。
そこで、このエンドレスループから抜け出すポイントをご紹介いたします!!
その最も大切なポイントは
記述する順番です!!
これが意外と盲点だったりします。
下記のように「# 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」で簡単にできます。
しかし記述の順番を誤ってしまうと、トップページのみリダイレクトされるだけとなり
下層ページのリダイレクトをどうしたらよいか右往左往することになります。
今回ご紹介した記述の順番しっかり覚えておきたいですね!!
簡単なポイントだからこそ忘れがちですが、重要ポイントです。
弊社では上記ブログ内容にある修正・カスタマイズのご依頼も承っております。
ご自身で行ってみて上手くいかない場合などこちらよりお気軽にご相談ください。