2016-02-10 31 views
2

一個URL假設我遇到這樣htaccess的重寫被傳遞2個參數

testingQuiz.com/my_test_link.php?id=4 &名稱=測試中的URL查閱

我需要重寫上面的URL這樣,

testingQuiz.com/4/test.html

我的問題是,我怎麼能做到這一點通過.htaccess進行URL進行讀和寫iting?

回答

2

類似下面的內容也許應該工作,但這並沒有經過完全測試,但初步測試表明它的確如預期那樣 - 儘管也許第二種樣式重定向可以被改進。

/* turn on url rewriting */ 
RewriteEngine On 
/* set the level for the rewriting, in this case the document root */ 
RewriteBase/

/* match 2 parameters in querystring - the first is numeric and the second is alphanumeric with certain other common charachters */ 
RewriteRule ^([0-9]+)/([a-zA-Z0-9_-]+)\.html$ my_test_link.php?id=$1&name=$2 [NC,L] 

這應該允許你寫的形式http://www.example.com/23/skidoo.html併爲$_GET變量您的網址/鏈接被解釋爲:

$_GET['id'] => 23, $_GET['name'] => skidoo 

如果需要自動地從原始的風格將用戶重定向查詢字符串到新的,更好的風格的URL,你可以嘗試添加上述規則後執行以下操作:

RewriteCond %{THE_REQUEST} /(?:my_test_link\.php)?\?id=([^&\s]+)&name=([^&\s]+) [NC] 
RewriteRule^%1/%2\.html? [R=302,L,NE] 

這樣一來,如果用戶輸入url http://www.example.com?id=23&name=skidoo它會重定向到http://www.example.com/23/skidoo.html

+0

是的,這是我的隊友工作! –