• Willkommen im Linux Club - dem deutschsprachigen Supportforum für GNU/Linux. Registriere dich kostenlos, um alle Inhalte zu sehen und Fragen zu stellen.

[gelöst] apache rewrite / redirect?

Hi,

EDIT:

Ich formuliere mein Problem mal um. Ich denke dies wird einfacher und verständlicher dadurch.

Ich möchte eine Umleitung per rewrite auf meinem Apache realisieren. Sobald eine Adresse nicht gefunden werden kann, soll auf eine bestimmte Adresse umgeleitet werden.

Momentan habe ich dies:
Code:
   RewriteEngine on
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteRule ^(.+) http://domain.tld/ordner1/ordner2 [L,R=301]

Leider lande ich in einer Endlosschleife. Kann mir einer sagen was ich falsch mache? Danke für eure Hilfe.
 
Bin mir ned ganz sicher, ob die Reihenfolge bei R=301 und L wichtig ist... Aber nachdem er bei L schluss machen soll, würde ich das mal ans Ende setzen.
Und wenn das Ziel n Ordner ist, dann wird -f wohl auch nicht matchen, nachdem das nur auf Dateien und nicht auf Ordner matcht ;)
 
Danke für deine Antwort.

Die Reihenfolge von R und L ist unwichtig. Funktioniert hier auch bei anderen Seiten.

Das -f habe ich testweise mal mit -F und -U getauscht. Immer mit dem selben Ergebnis, dass er in einer Schleife landet.

Ich präzisiere mal mein Problem:

Ich habe mailman eingerichtet auf einem Debian-Server. Um Mailman zu erreichen lautet die Adresse lists.domain.tld/cgi-bin/mailman/listinfo Um mir die lange URL nicht merken zu müssen, wollte ich, dass er von lists.domain.tld auf diese URL umleitet. Am einfachsten wäre es da wohl, dass er immer dahin umleitet, sobald er keine Datei findet. Leider verzweifle ich auch daran ;-)

Vielleicht liegt es auch daran, dass ich später auch nochmal den Pfad umbiege mit
Code:
 ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
bzw. dass er da cgi-scripts ausführt?!
 
Ok, keine Ahnung warum das mit mailman nicht funktioniert, aber folgender Ausdruck funktioniert mit normalen Seiten:
Code:
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ ordner1/ [L]
Dennoch funktioniert eins aber nicht: wenn ich nur domain.tld angebe, erscheint bei mir ein Forbidden (keine index.htm vorhanden). Wie kann ich das umgehen?

Ich habe gedacht ich könnte die Variable %{REQUEST_FILENAME} testen ob sie leer ist, aber anscheinend ist sie immer beschrieben.
Code:
   RewriteCond %{REQUEST_FILENAME} ="" [OR]
   RewriteCond %{REQUEST_FILENAME} !-f
   RewriteCond %{REQUEST_FILENAME} !-d
   RewriteRule ^(.*)$ ordner1// [L]
 
Oben