mod_rewrite Umleitung der Anfragen

talkabut

Grünschnabel
Hi Leute,

ich möchte folgendes machen:

1. wenn das Verzeichnis am Anfang eines Links hans heisst, dann soll die URL auf /hans/index.php umgeschrieben werden
2. alle anderen Anfragen sollen auf index.php gehen

z.B. http://lokaler_host/hans/irgendwas/hier.php soll umgeleitet werden auf http://lokaler_host/hans/index.php
http://lokaler_host/irgendwas/hier.php soll umgeleitet werden auf http://lokaler_host/index.php


Nun habe ich so etwas ähnliches gemacht, allerdings habe ich folgendes Problem.
Eigentlich ist ja die Option [L] dazu, die Regelbearbeitung abzubrechen, irgendwie tuts das nicht...

Folgende Regeln habe ich aufgestellt:


RewriteEngine on
RewriteRule ^(hans/)(.*)/(.*)\.php hans/index.php?Id=$2 [NC,L]
RewriteRule ^(.*)/(.*)\.php /index.php?Id=$1


Regel Nr. 1 wird scheinbar übersprungen, es landen alle Anfragen bei index.php.

Kann mir bitte jemand die Riesentomaten von meinen Augen nehmen?
Das wäre sehr nett.

Vielen Dank im Voraus.

//EDIT

Hi Leute,

die Tomaten scheinen gefallen zu sein, da es jetzt funktioniert.
Folgende Rules haben das gewünschte Ergebnis gebracht.

RewriteEngine on
RewriteRule ^(hans/)(.*) hans/index.php?Id=$0 [L]
RewriteRule ^(.*)/(.*)\.php /index.php?Id=$1

Trotzdem danke an alle die bis hierher gelesen haben.

:)
 
Ich würde zusätzlich noch die „index.php“ von der Regel ausnehmen, da dies zu einer Endlosschleife führen kann:
Code:
RewriteCond   %{REQUEST_FILENAME}    !/index\.php$
RewriteRule   ^hans/.*               /hans/index.php?Id=$0   [L]
RewriteRule   ^([^/]+)/[^/]+\.php$   /index.php?Id=$1   [L]
 
Hi Gumbo,

das ist sehr interessant, das ist mir noch nicht aufgefallen, da ich die index.php explizit am ende auch angehängt habe.

Mich würde interessieren, wann eine endlosschleife auftreten kann, also nur so spashalber.


Erst mal aber vielen Dank für die Korrektur.
 
Zurück