2
一個URL假設我遇到這樣htaccess的重寫被傳遞2個參數
testingQuiz.com/my_test_link.php?id=4 &名稱=測試中的URL查閱
我需要重寫上面的URL這樣,
testingQuiz.com/4/test.html
我的問題是,我怎麼能做到這一點通過.htaccess進行URL進行讀和寫iting?
一個URL假設我遇到這樣htaccess的重寫被傳遞2個參數
testingQuiz.com/my_test_link.php?id=4 &名稱=測試中的URL查閱
我需要重寫上面的URL這樣,
testingQuiz.com/4/test.html
我的問題是,我怎麼能做到這一點通過.htaccess進行URL進行讀和寫iting?
類似下面的內容也許應該工作,但這並沒有經過完全測試,但初步測試表明它的確如預期那樣 - 儘管也許第二種樣式重定向可以被改進。
/* 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
是的,這是我的隊友工作! –