• Jetzt anmelden. Es dauert nur 2 Minuten und ist kostenlos!

mod_rewrite Rules

krzd

Neues Mitglied
Hallo,
ich scheine mir für mod_rewrite echt zu blöd zu sein. Ich versuche es schon einen halben Tag. Vielleicht kann mir ja hier jemand helfen.
Ich will per mod_rewrite folgende Regeln realisieren, die funktionieren sollen, egal welche Domain man benutzt:

  1. Wenn die aufgerufene Domain mit www. beginnt, soll dies entfernt werden
  2. Wenn der aufgerufene Pfad eine existierende Datei oder Ordner ist, sollen keine weiteren Regeln mehr angewandt werden
  3. Ist am Ende des Pfades kein / soll eins hinzugefügt werden
  4. besteht der Pfad aus Buchstaben und Zahlen, soll umgeleitet werden zu /?PFAD, also ein Fragezeichen daszwischen gesetzt werden
Vielen Dank im Vorraus
 
Code:
RewriteEngine On

RewriteCond %{HTTP_HOST} ^www\.domain\.com$
RewriteRule ^(.*)$ http://domain.com/$1 [R=301,L]

RewriteCond %{REQUEST_FILENAME} -s [OR]
RewriteCond %{REQUEST_FILENAME} -l [OR]
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^.*$ - [NC,L]

#nicht getestet
RewriteRule ^(.*)[^/]$ $1/ [R=301,L]

RewriteRule ^([\d\w]+)$ index.php?$1 [NC,L]
 
Hmm, danke, aber komischerweise leitet domain/foo auf domain/var/www/virtual/krzd.net/htdocs/foo/.
Das sollte so nicht sein, scheint aber weniger am Code zu liegen.
 
Hmm, danke, aber komischerweise leitet domain/foo auf domain/var/www/virtual/krzd.net/htdocs/foo/.
Das sollte so nicht sein, scheint aber weniger am Code zu liegen.

Irgendwie habe ich es jetzt hingekriegt, dass die .htaccess läuft. Das obige Problem tritt auf, sobald ich
Code:
RewriteRule ^(.*)[^/]$ $1/ [R=301,L]
drinn hab. Diese Zeile sollte ein / ans Ende der Adresse hinzufügen, wenn da keines ist. Irgendwelche anderen Vorschläge?

Danke
 
Zurück
Oben