web-dev-qa-db-ja.com

クエリ文字列のないURLをクエリ文字列のあるURLにリダイレクトする方法は?

私は自分の質問に対する答えを探しましたが、それ以上に混乱するだけでした。誰かが私を助けてくれることを望んでいます...

このURLをリダイレクトする必要があります。

http://www.example.co.uk/ecommerce/cabinets/aluminium_cabinets

に:

http://www.example.co.uk/products/cabinets/?types[]=illuminated-aluminium-cabinets&types[]=non-illuminated-aluminium-cabinets

.htaccessでmod rewriteを使用しています

2
Moclin

特別な策略は必要ありません。 .htaccessでmod_rewriteを使用する:

RewriteEngine On
RewriteRule ^ecommerce/cabinets/aluminium_cabinets$ /products/cabinets/?types[]=illuminated-aluminium-cabinets&types[]=non-illuminated-aluminium-cabinets [R,L]

Apacheは、デフォルトで角括弧([および])をエスケープ(パーセントエンコード)しますが、これらはURLのこのコンテキストでのエンコードを厳密に許可されていません。 (これは、PHPの$_GET配列を使用したURLパラメーターの読み取りには影響しません。)

これは一時的な(302)リダイレクトです。永続的にするには、RR=301に変更します。または、内部書き換えにするには、単にRフラグを削除します。

1
MrWhite