2015-07-03 4 views
0

Я новичок в регулярных выражений и нужно переписать пример URL:мод переписывают дружественный URL

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

дружественному URL, который выглядит как форум URL, например:

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

Таким образом, 1 является переменной GET. Название должно быть в нижнем регистре только

Я попытался следующие, но это, кажется, неправильно:

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

Это собирание переменную GET в 1-quiz-title в то время как она должна быть только 1

Благодаря

ответ

0

Если прибудете переменная - это только числа, вы хотите, чтобы регулярное выражение было таким:

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

Итак, регулярное выражение соответствует некоторому количеству чисел и группирует его (круглые скобки), соответствует значению «-». Обратите внимание, что для конца матча нет $, это, по сути, полностью игнорирует название, даже не пытаясь его сопоставить. Название не должно быть в переписанном URL-адресе, поэтому нам все равно, что происходит после -.

+0

Число - уникальный идентификатор викторины, а буквы - это название викторины с пробелами, замененными дефисами. Например, название викторины «Как долго вы будете жить?» с идентификатором «1» в базе данных, должен иметь URL-адрес «http://domain.com/1-how-long-will-you-live». Надеюсь, теперь стало яснее –

+0

@MichaelSamuel отредактировал ответ –

+0

, а как насчет заголовка должны быть только строчные буквы и дефисы? после id –

Смежные вопросы