rewiteルールについて
まず、WEBサーバー側(apache)にrewiteモジュールが組み込まれていないと、あるいは、使えるようになってないと、 rewiteルール
はそもそもエラーになります。(エラーが発生する)rewiteルール
が組み込まれてない時に発生するエラーを抑止する為に、次のようなディレクティブで挟みます。
1 2 |
<IfModule mod_rewrite.c> </IfModule> |
ですから、 rewiteルール
が組み込まれてない場合は、どんなに記述しても意味がありません。
元々、組み込まれていたWordpressの設定から上記のディレクティブを外してエラーが発生するなら、rewriteモジュールが組み込まれていないので、この時点でリダイレクトは不可能です。そして、元々組み込まれていた記述は下記URLの 「存在しないファイルは全てアプリで処理する」 の部分を参考にしてください。
参考記事:
https://qiita.com/shotets/items/1f8f308e008dcb96bf43
https://kana-lier.com/web/redirect/
次に、下記の記述について説明します。
1 2 3 4 |
RewriteEngine on RewriteCond %{HTTPS} off RewriteCond %{HTTP_HOST} ^www\.sample\.com RewriteRule ^(.*)$ https://%{HTTP_HOST}%{REQUEST_URI} [L,R=301] |
1.リダイレクトをする為のエンジンをオンにします。
これをオンにしないと、そもそも ‘rewiteルール’ の記述が無効になります。
2.これはhttpsでのアクセスがoff状態である事の条件です。
RewriteCond
はそれ以降に続く RewriteRule
を実行してよい条件を記述します。
3.これはアドレス(URL、ホスト名、ドメイン名)が 「www\.sample\.com」 から始めっている時の条件です。
4.2.と3.の条件を満たした時にこの RewriteRule
が実行されます。
これはどのURLであっても右側で指定したアドレスにジャンプさせる事を意味しています。