/ / .htaccess rewrite wyrażenia regularne regex - regex, apache, .htaccess, mod-rewrite, rewrite

.htaccess przepisywanie wyrażeń regularnych regex - regex, apache, .htaccess, mod -write, przepisywanie

Mój adres URL to:

http://www.domain.com/Seattle_WA_math

Musi wskazywać na:

http://www.domain.com/list.php?city=Seattle&state=WA&s=math

Oto co mam do tej pory, nie działa ...

RewriteRule ^[A-Za-z_-]+_[A-Z]{2}_[A-Za-z0-9_-()]+/$ list.php?city=$1&state=$2&$s=$3 [L]

Odpowiedzi:

0 dla odpowiedzi № 1

Powinno to zrobić:

RewriteRule ^([A-Za-z-]+(?:_[A-Za-z-]+)*)_([A-Z]{2})_([A-Za-z0-9_-()]+)/?$ list.php?city=$1&state=$2&$s=$3 [L]

Pozwala na wiele sformułowanych miast i tematów oraz opcjonalne końcowe / ścieżka.


0 dla odpowiedzi nr 2

Piszę to w locie, ale powinno działać.

RewriteRule ^ ([a-zA-Z -] +)([A-Z] {2})([a-zA-Z0-9 _-] +) $ list.php? miasto = 1 $ i stan = 2 $ i s = 3 $

() Wyznacza zmienne $ # w części końcowej, więc wszystko, co pasuje, powinno się wyrównać.


0 dla odpowiedzi № 3

Wypróbuj to w pliku .htaccess:

RewriteEngine on
Options +FollowSymlinks -MultiViews
RewriteRule ^([A-Za-z-]+(?:_[A-Za-z-]+)*)_([A-Z]{2})_([A-Za-z0-9_-]+)/?$ /list.php?city=$1&state=$2&s=$3 [R,L,QSA,NE]

R=301 przekieruje ze statusem https 301
L ustanowi ostatnią zasadę
NE jest bez uciekającego ciągu zapytania
QSA doda istniejące parametry zapytania

$1, $2 i $3 są grupami w Twoim REQUEST_URI