2012-05-27 95 views
1

我有使用的.htaccess rewritting的URL,當URL的東西,看起來像 原始地址問題:http://www.example.com/page.php?id=1&name=test 改寫後:http://www.example.com/page-1-test它工作正常的.htaccess URL重寫了2個變量

但經理問了連字符代替空格,所以我做了這個

$name = str_replace(" ", "-", $name); 

那麼我回聲$ PAGE_NAME http://www.example.com/page.php?id=2&name=test-some-other-text

所以它會看起來像這樣http://www.example.com/page-2-test-some-other-text

在它需要2-test-some-other-text作爲id時,我嘗試$ _GET ['id'];

,這裏是在.htaccess

RewriteRule page-(.*)-(.*)$ page.php?id=$1&name=$2 
+2

試試'RewriteRule頁面 - (\ d +) - (。*)$ page.php?id = $ 1&name = $ 2'這樣可以更好地控制組。 – Jones

+1

'page - (。*)'將在'page-'後捕獲任何東西,它不會停在另一個破折號處。 –

+0

@Jones你的解決方案也工作如此之大,謝謝你的幫助你所有的人 –

回答

3

因爲ID是一個數字,我重寫規則,嘗試此規則:

RewriteRule page-([0-9]+)-(.*)$ page.php?id=$1&name=$2 

它只會匹配位數的ID,然後結束在最後的衝刺中,而不是繼續嘗試貪婪的比賽。

+0

作爲魔術,謝謝你,你救了我免於被解僱 –