目次

この記事の目次です。

1. htaccessのパラメータ付きURLのリダイレクト方法
2. 別のURLでパラメータを引き継ぐ方法
3. 別のURLでパラメータを引き継がない方法
4. 別のURLでパラメータを上書きする方法
5. 別のURLでパラメータを引き継ぎつつ付加する方法
6. 特定のパラメータがあるときだけリダイレクトする方法

関連記事
更新履歴

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]

6. 特定のパラメータがあるときだけリダイレクトする方法

特定のパラメータがあるときだけリダイレクトする場合は「%{QUERY_STRING}」を判定します。

パラメータを引き継ぐ場合

特定のパラメータがあるときにパラメータを引き継いでリダイレクトする場合の例です。

RewriteEngine on
RewriteCond %{QUERY_STRING} ^aaa=123$
RewriteRule ^test https://htaccess-support.com/test2 [L,R=301]

パラメータを引き継がない場合

特定のパラメータがあるときにパラメータを引き継がないでリダイレクトする場合の例です。

RewriteEngine on
RewriteCond %{QUERY_STRING} ^aaa=123$
RewriteRule ^test https://htaccess-support.com/test2? [L,R=301]

関連記事

関連記事です。

リダイレクト

用語の意味や.htaccessの設定(正規表現やパラメータ)などリダイレクトについて解説しています。

詳細

更新履歴

更新履歴になります。

トップ手順・方法.htaccessのパラメータ付きURLのリダイレクト方法