2016-09-26 80 views
2

我有頁面重定向URL,像下面有多個參數一樣。用多個參數重寫URL php

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

從這個網址我帶的所有參數值從數據庫中取數據。

因此,當我加載此頁面時,我需要顯示最像用戶友好的網址,如下所示。在該URL應包含的product_id只值這是我用我的重定向URL

http://example.com/93477.htm

我試圖改寫這個網址,如下所示。但是因爲我不能使用參數「categoryId」和「keyword」

重寫^ /([a-zA-Z0-9/- ] +)。htm /search.php?layout=details & view =產品&關鍵字= $ 3 & CategoryId = $ 2 & product_id = $ 1 last;

請人幫我做成功吧..

問候,

維涅什KUMARķ

+1

如果原始url的查詢字符串中的每個參數都是u sed幫助建立一個sql查詢,然後沒有他們,你不會找到相同的記錄。原始網址中的每個必需參數都應映射到重寫網址 – 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] 

的原始網址:

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加入奧雅納代碼現在,這樣的查詢字符串追加爲了使用PHP $ _GET

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

更新2以檢索 動態參數:

編輯的代碼的.htaccess使關鍵字和類別標識動態

+0

謝謝您的回答,但原始網址CategoryId和關鍵字會針對每個網址動態更改。所以在這種情況下我們應該使用你的代碼。 –

+1

使用[QSA]獲取附加的查詢字符串。讓我更新答案hold on mate –

+1

@VigneshKumar更新了代碼,檢查並更新我是否解決你的問題隊友? –