2015-07-03 104 views
0

我是新來的正則表達式,並需要重寫一個例子網址:國防部重寫友好的URL

http://domain.com/quiz.php?id=1 

向友好的URL,它看起來像論壇的網址,例如:

http://domain.com/1-quiz-title 

所以1是GET變量。標題必須是小寫僅

我嘗試以下,但它似乎不正確:

RewriteRule ^([a-z0-9\-]+)$ quiz.php?id=$1 [L] 

它採摘GET變量1-quiz-title而它應該只有1

感謝

回答

0

如果GET變量只是數字,你想正則表達式是這樣的:

RewriteRule ^([0-9]+)- quiz.php?id=$1 [L] 

所以正則表達式首先匹配一些數字,然後對它進行分組(括號),匹配一個「 - 」。請注意,比賽結束時沒有$,這基本上會完全忽略標題,甚至不會去匹配它。標題不需要在重寫的URL中,所以我們並不在乎-之後會發生什麼。

+0

該數字是測驗的唯一標識符,而字母是用空格替換空格的測驗的標題。例如,一個測驗標題「你會活多久?」在數據庫中使用ID「1」,應該有URL「http://domain.com/1-how-long-will-you-live」。希望現在更清楚 –

+0

@MichaelSamuel編輯答案 –

+0

那麼標題必須只有小寫字母和連字符呢?在編號 –