.htaccessのパラメータ付きURLのリダイレクト方法
技術情報
.htaccessのパラメータ付きURLのリダイレクト方法についてまとめていいます。
目次
この記事の目次です。
1. htaccessのパラメータ付きURLのリダイレクト方法
2. 別のURLでパラメータを引き継ぐ
3. 別のURLでパラメータを引き継がない
4. 別のURLでパラメータを上書きする
5. 別のURLでパラメータを引き継ぎつつ付加する
1. htaccessのパラメータ付きURLのリダイレクト方法
パラメータ付きURLのリダイレクト設定について見ていきます。
2. 別のURLでパラメータを引き継ぐ
別のURLでパラメータを引き継ぐ場合はURLの「?」以降を記述しなければそのまま引き継がれます。
例えば、「http://<ドメイン>/before/index.php?aaa=bbb」のアクセスをパラメータを変えずに「https://<ドメイン>/index.php?aaa=bbb」にパラメータを引き継いでリダイレクトする場合です。
RewriteEngine on RewriteRule ^before/index.html$ https://<ドメイン>/index.php [R=301,L]
3. 別のURLでパラメータを引き継がない
別のURLでパラメータを引き継がない場合はURLの「?」だけつけて「?」以降を記述しないようにします。
例えば、「http://<ドメイン>/before/index.php?aaa=bbb」のアクセスをパラメータを付与しない「https://<ドメイン>/index.php」にリダイレクトする場合です。
RewriteEngine on RewriteRule ^before/index.html?$ https://<ドメイン>/index.php [R=301,L]
4. 別のURLでパラメータを上書きする
別のURLでパラメータを上書きする場合はURLの「?」以降を記述します。
例えば、「http://<ドメイン>/before/index.php?aaa=bbb」のアクセスをパラメータを変えずに「https://<ドメイン>/index.php?page=ddd」にパラメータを引き継いでリダイレクトする場合です。
RewriteEngine on RewriteRule ^before/index.html$ https://<ドメイン>/index.php?page=ddd [R=301,L]
5. 別のURLでパラメータを引き継ぎつつ付加する
別のURLで別のURLでパラメータを引き継ぎつつ付加する場合はURLの「?」以降を記述し、「QSA」を指定します。
例えば、「http://<ドメイン>/before/index.php?aaa=bbb」のアクセスをパラメータを変えずに「https://<ドメイン>/index.php?page=ddd&aaa=bbb」にパラメータを引き継いでリダイレクトする場合です。
RewriteEngine on RewriteRule ^before/index.html$ https://<ドメイン>/index.php?page=ddd [R=301,QSA,L]
関連記事
関連記事です。
リダイレクト
用語の意味や.htaccessの設定(正規表現やパラメータ)などリダイレクトについて解説しています。
更新履歴
更新履歴になります。
- 2021/10/10 記事をアップしました。