wie lautet die htaccess für mod_rewrite richtig ?

Sarius87

Banned
Registriert
Mai 2016
Beiträge
888
hallo, habe diese .htaccess für mod_rewrite :

HTML:
ErrorDocument 404 /
Options +FollowSymlinks
RewriteEngine On
RewriteBase /
RewriteRule ^\.htaccess$ - [F]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^([a-zA-Z0-9_-]+)/?$ /verify/?user=$1 [QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ /verify/index.php?user=$1&code=$2 [QSA]

wenn ich jetzt example.com/verify/NAME aufrufe kann ich den GET-parameter von "name" anzeigen lassen und so, doch sobald das 2. argument hinzukommt beim link fehlen die assets wie css und js... wieso ? was ist da falsch ?
 
Zuletzt bearbeitet:
Was willst du denn damit erreichen?
 
Zuletzt bearbeitet:
wenn ich jetzt example.com/verify/NAME aufrufe kann ich den GET-parameter von "name" anzeigen lassen und so, doch sobald das 2. argument hinzukommt beim link fehlen die assets wie css und js... wieso ? was ist da falsch ?
 
Wenn ich deine htaccess richtig lese, dann soll sie folgendes machen:

- Requests der Form example.com/foo werden umgeleitet auf example.com/verify/?user=foo
- Requests der Form example.com/foo/bar werden umgeleitet auf example.com/verify/?user=foo&code=bar

für alle foo und bar, die deinem Muster entsprechen (Buchstaben, Ziffern, Binde- und Unterstriche).

Du schreibst, dass du example.com/verify/NAME aufrufst. Das würde dann also zu example.com/verify/?user=verify&code=NAME. Ich glaub nicht, dass das deine Absicht ist. Versuch mal, das verify/ beim Aufruf wegzulassen, das wird ja in der htaccess extra dazugefügt.
 
ich bin ja im ordner verify, nicht im hauptverzeichnis. daher muss das so sein.
 
Ok, das ist was anderes. Wäre vielleicht sinnvoll gewesen, das dazuzuschreiben :)

Nächster Versuch: Bei der ersten Regel hast du nur geschrieben /verify/?user=$1, bei der zweiten aber /verify/index.php?user=$1&code=$2. Klappt es, wenn du die Regel so schreibst wie die erste?
 
Code:
RewriteRule ^([a-zA-Z0-9_-]+)/?$ /verify/?user=$1 [QSA]
RewriteRule ^([a-zA-Z0-9_-]+)/([a-zA-Z0-9_-]+)/?$ /verify/?user=$1&code=$2 [QSA]

nee, immer noch
 
Du könntest noch versuchen, die Reihenfolge der beiden Regeln umzudrehen. AFAIK sollte eigentlich das $ am Ende des regulären Ausdrucks verhindern, dass die erste Regel auf URLs mit zwei Parametern angewendet wird, aber sicher ist sicher...

Wenn das nicht hilft, weiß ich auch nicht weiter :(
 
Ein Base-Tag wird es richten.
Oder halt keine relativen Pfade für referenzierte Elemente verwenden, die dann per rewrite rule gesetzte "Pfade" völlig durcheinander geraten.
 
Zurück
Oben