Jestem nowy w wyrażeniach regularnych i muszę przepisać przykładowy adres URL:
http://domain.com/quiz.php?id=1
Do przyjaznego adresu URL, który wygląda jak adres URL forum:
http://domain.com/1-quiz-title
Więc 1
jest zmienną GET. Tytuł musi zawierać tylko małe litery
Próbowałem następujących czynności, ale wydaje się to nieprawidłowe:
RewriteRule ^([a-z0-9-]+)$ quiz.php?id=$1 [L]
Wybiera zmienną GET jako 1-quiz-title
podczas gdy powinno być tylko 1
Dzięki
Odpowiedzi:
0 dla odpowiedzi № 1Jeśli zmienna get to tylko liczby, chcesz, aby wyrażenie regularne wyglądało tak:
RewriteRule ^([0-9]+)- quiz.php?id=$1 [L]
Zatem wyrażenie regularne najpierw dopasowuje pewną liczbę liczb i grupuje ją (w nawiasach), dopasowuje „-”. Zauważ, że nie ma $
na koniec meczu to w zasadzie będziecałkowicie zignoruj tytuł, nawet nie próbując go dopasować. Tytuł nie musi znajdować się w przepisanym adresie URL, więc nie obchodzi nas, co nastąpi po -
.