Hi,
Auch die Parameter [L,NC,QSA] sind nicht zwingend notwendig.
Irgendwas muss man wohl hinter die Rewriterule schreiben, da es ohne, bei mir zumindest, nicht geht.
Gerade mal mit
RewriteRule ^robots.txt$ /configs/files/robots.txt
getestet, passiert aber nichts, bzw. bekomme ich einen 404er.
Das kann noch von weiteren Bedingungen abhängen, die wir nicht kennen.
L sorgt dafür, dass das Rewriting an dieser Stelle dann endet, wenn es Erfolg hatte, und die erzeugte URL nicht in nachfolgenden Regeln noch weiter verändert wird. Kann man so machen, muss man nicht zwingend.
Meinst du mit "nicht in nachfolgenden Regeln noch weiter verändert wird" weiteres Rewriten in der .htaccess? Über PHP kann ich ja die URI weiterhin bearbeiten bzw. noch Parameter anhängen, um mit diesen weiter zu arbeiten.
PHP hat hier nichts mit zu tun.
Ein hereinkommender Request durchläuft alle RewriteRules der Reihe nach. Wenn man das nicht möchte - entweder, weil man nicht möchte, dass diese an der gerade umgeschriebenen Adresse erneut wieder was ändern, oder weil man weiss, dass der ganze Rattenschwanz nachfolgender Regeln nicht mehr zutreffen wird, und deshalb deren Überprüfung nur unnötig Rechenpower frisst - dann kann man mit dem Flag [L] angeben, dass die nachfolgenden Regeln nicht mehr angewandt werden sollen.
Wobei das nur für den aktuellen Rewrite-Durchgang gilt - wenn man das Rewriting in .htaccess konfiguriert, dann behandelt der Apache einen gerade umgeschriebenen Request wie einen neu hereinkommenden, und wendet das komplette Regelset darauf erneut an - *das* zu beeinflussen, dafür ist [L] *nicht* ge(m|d)acht.
NC sorgt für case-insensitiven Regex. Damit werden auch alle URLs, die "feed" mit Großbuchstaben schreiben, umgeschrieben. Ist das notwendig?
Bringt es denn Nachteile mit sich? IMPRESSUM und impressum sind doch so gesehen Identisch, warum dann bei Gross geschriebenem einen 404er melden?
Weil Ressourcen unter einem, eindeutigen Namen erreichbar sein sollten - und nicht unter zig davon bzw. unter "allen möglichen Kombinationen" aus Gross- und Kleinschreibung.
(Hier kann man natürlich scriptseitig entsprechend reagieren - und die fehlerhaften Anfragen auf /Impressum, /iMprESSum etc. alle auf /impressum umleiten lassen, permanent/301 natürlich.)
Ah, ich dachte die ganze Zeit, dass QSA das interne arbeiten mit Parametern ermöglicht (?key=wert;usw=usf).
Nein, es fügt wie Sven sagte nur den originalen Querystring wieder an - das kann man dann benutzen, wenn man einen (evtl.) original vorhandenen solchen lediglich erweitern möchte. Per Default, ohne dieses Flag, wird er nämlich "weggeschmissen".
Jetzt habe ich meine .htaccess mal bereinigt, allerdings komme ich um mindestens eine Einstellung nach der Rewriterule nicht drum rum.
Wie gesagt, aus dem bisher geposteten ist nicht erkennbar, warum das so sein sollte.
MfG ChrisB
--
Light travels faster than sound - that's why most people appear bright until you hear them speak.