/ / mod rewrite friendly url - regex, apache, .htaccess, mod-rewrite

modyfikuj przyjazny adres URL - regex, apache, .htaccess, mod-rewrite

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 № 1

Jeś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 -.