/ / .htaccess Regex reguläre Ausdrücke neu schreiben - regex, apache, .htaccess, mod-rewrite, neu schreiben

.htaccess Regex reguläre Ausdrücke umschreiben - regex, apache, .htaccess, mod-rewrite, neu schreiben

Meine URL ist:

http://www.domain.com/Seattle_WA_math

Es muss zeigen auf:

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

Hier, was ich bisher habe, funktioniert nicht ...

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

Antworten:

0 für die Antwort № 1

Dies sollte es tun:

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

Erlaubt mehrere formulierte Städte und Themen und optional Trailing / Pfad.


0 für die Antwort № 2

Ich schreibe dies im laufenden Betrieb, aber es sollte funktionieren.

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

Die () bezeichnen die $ # Variablen im Endteil, so dass alles, was passt, übereinstimmen sollte.


0 für die Antwort № 3

Probieren Sie dies in Ihrer .htaccess-Datei aus:

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 wird mit https status 301 umgeleitet
L wird die letzte Regel machen
NE ist für keine ausgehende Abfragezeichenfolge
QSA wird Ihre vorhandenen Abfrageparameter anhängen

$1, $2 und $3 sind Gruppen in Ihrer REQUEST_URI