QSA
フラグはクエリ文字列を自動的に返します。これをドメインのルート フォルダーに置きます.htaccess
。
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteRule ^product_info\.php$ http://shop.domain.co.uk/product_info.php [R=301,QSA,L]
サブドメインもドメインの同じルート フォルダーにある場合は、これを使用します。
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ [NC]
RewriteRule ^product_info\.php$ http://shop.domain.co.uk/product_info.php [R=301,QSA,L]
ユーザーがアクセスする場合、基本的に上記のルールのいずれかを使用します。
domain.com/product_info.php?products_id=4
domain.com/product_info.php?products_id=3
domain.com/product_info.php?products_id=2
domain.com/product_info.php?products_id=1
次の場所にリダイレクトされます。
shop.domain.com/product_info.php?products_id=4
shop.domain.com/product_info.php?products_id=3
shop.domain.com/product_info.php?products_id=2
shop.domain.com/product_info.php?products_id=1
実際に ID を変更する必要がある場合は、次のようにします。
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{QUERY_STRING} products_id=([^&]+) [NC]
RewriteRule ^product_info\.php$ http://shop.domain.co.uk/product_info.php?products_id=1%1 [R=301,L]
ドメインとサブドメインが同じルート フォルダーにある場合、次のようになります。
Options +FollowSymLinks -MultiViews
RewriteEngine On
RewriteBase /
RewriteCond %{HTTP_HOST} ^(www\.)?domain\.co\.uk$ [NC]
RewriteCond %{QUERY_STRING} products_id=([^&]+) [NC]
RewriteRule ^product_info\.php$ http://shop.domain.co.uk/product_info.php?products_id=1%1 [R=301,L]
%{QUERY_STRING}
基本的に、クエリ文字列からデータを取得するために使用する必要があります。
したがって、上記の 2 つのルールのいずれかで、ユーザーがアクセスする場合:
domain.com/product_info.php?products_id=4
domain.com/product_info.php?products_id=3
domain.com/product_info.php?products_id=2
domain.com/product_info.php?products_id=1
次の場所にリダイレクトされます。
shop.domain.com/product_info.php?products_id=14
shop.domain.com/product_info.php?products_id=13
shop.domain.com/product_info.php?products_id=12
shop.domain.com/product_info.php?products_id=11