htaccess und RewriteRule

Senfgeist

Lt. Commander
Registriert
März 2007
Beiträge
1.083
Hi,

ich habe folgenden Eintrag in meiner htaccess:

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
RewriteCond %{HTTP_USER_AGENT} libwww-perl.* [NC]
RewriteRule .* - [F,L]
</IfModule>

Ich bin kein Profi in diesem Bereich, weiß aber, dass [L] bedeutet, dass keine weiteren Regeln mehr beachtet werden - sehe ich das richtig? Ist die aktuelle Reihenfolge hier denn dann überhaupt sinnvoll und wird da alles abgearbeitet? Weil ich schon drei "L" heraus lese und aber sehr verunsichert bin, was das Sortieren der Einträge angeht. Was ich weiß: Der Eintrag RewriteCond %{HTTP_USER_AGENT} libwww-perl.* [NC] wird schon gar nicht mehr beachtet.

Wenn sich jemand mit sowas auskennt, würde ich mich sehr freuen, wenn mir derjenige diesen Code in eine Form umverpackt, die a) funktioniert und b) auch alle geforderten Regeln abarbeitet. Ich vermute im aktuellen Fall wird nach dem ersten "L" schon nicht weiter verarbeitet - richtig?

Liebe Grüße!
 
Keine Ahnung ob dir das hilft, aber ab Seite 23 findest du etwas zum Thema (damit habe ich das damals für die Klausur gelernt): http://grussell.org/ns/slides/week8.pdf

L steht für Last, alles nachfolgende wird ignoriert.
 
Hm, hilft mir leider nicht so weiter. Ich sehe nur, dass in meiner HTACESS schon drei "L" vorkommen, ich weiß aber nicht, wie ich es umsortieren muss, damit das alles auch 100% Sinn macht. Daher die Frage hier an die "Experten".
 
Also ich finde die Frage sehr interessant.

Ich hatte in einem Projekt folgende htaccess:

Code:
RewriteEngine on
RewriteRule custom/(.*)$ custom/$1 [L]
RewriteRule (.*)\.(html|htm|xml|pdf|doc|xls|json|txt|pijeg|stream|ftp)$ index.php?page=$1&extension=$2 [QSA]

Das funktioniert wie gewünscht.
Bei einem Aufruf von aboutus.html wird erstmal in "custom" weitergeleitet, da dort der Quellcode liegt.
Anschließend wird die URL (nicht sichtbar) zerlegt in page=aboutus und extension=html und mit diesen Parametern die index.php aufgerufen. Dann wird die Seite gerendert.
In der Adresszeile steht immer noch "aboutus.html".

Also irgendwie kann das mit dem L nicht stimmen.
 
Genau darum dürfen sich hier gerne mal die Experten zu Wort melden :-) Still waiting.
 
Push?
 
Das ist für mich Chinesisch :-) Ich weiß nur, dass laut Tests libwww-perl nach wie vor durchgelassen wird, also stimmt irgendwas nicht. Wie müsste es denn richtig aussehen?
 
Und das soll mir sagen?
 
Zurück
Oben