2015-07-03 113 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

那么标题必须只有小写字母和连字符呢?在编号 –