2016-09-26 10 views
2

複数のパラメータを持つ以下のようなページリダイレクトURLがあります。そのURLから 複数のパラメータを持つURLを書き換えます。

http://example.com/search.php?layout=details&Keyword=mobile&view=product&CategoryId=1026&product_id=93477

iは、データベースからデータを取るためにすべてのパラメータ値を取っています。

このページを読み込むと、以下のように最もフレンドリーなURLを表示する必要があります。そのURLには、私は以下のように、このURLを書き換えることを試みた

http://example.com/93477.htm

私は私のリダイレクトURLを使用していているのproduct_idの値のみが含まれている必要があります。しかし、私はパラメータ "categoryId"と "キーワード"を使用できませんでした。

書き換え^ /([a-zA-Z0-9/- ] +).htm /search.php?layout=details & view = product &キーワード= $ 3 & CategoryId = $ 2 & product_id = $ 1 last;

誰もが正常に行われ...

よろしく、

ビネーシュKUMAR K

+1

元のURLのクエリ文字列の各パラメータがSQLクエリを構築するためにsedを使用しないと、同じレコードが見つかりません。元のURLに必要な各パラメータは、再書き込みURLにマップする必要があります – RamRaider

答えて

1

RewriteEngine on 
RewriteCond %{THE_REQUEST} \s/search\.php\?layout=details&Keyword=([^&]*)&view=product&CategoryId=([^&]*)&product_id=([^&]*) [NC] 
RewriteRule^/%2/%3/%1? [L,NE,R=302] 
RewriteRule ^([^/]+)/([^/]+)/([^/]+)/?$ /search.php?layout=details&Keyword=$2&view=product&CategoryId=$3&product_id=$1 [L,QSA] 

、この仲間を試してみて、元のURLに私を助けてください:

http://example.com/search.php?layout=details&Keyword=mobile&view=product&CategoryId=1026&product_id=93477

書き換えURL:

http://example.com/93477.htm

を更新1:

は[QSA] ABに追加されています .htaccessのコードを作るために編集された

:アップデート2 PHP $ _GETに

http://httpd.apache.org/docs/current/rewrite/flags.html#flag_qsa

を使用して 動的パラメータをretriveするために、クエリ文字列を追加するようになりましたオベコードキーワードとカテゴリID動的

+0

ありがとうございます。しかし、元のURLではCategoryIdとキーワードがすべてのURLに対して動的に変更されます。その場合、私たちはあなたのコードをそれに使用するものとします。 –

+1

[QSA]を使用して、添付されたクエリ文字列を取得します。私が答えを更新させてください –

+1

@VigneshKumarがコードを更新し、あなたの問題の仲間を解決するかどうかをチェックして更新しますか? –

関連する問題