.htaccess wie umleiten

Hallo liebe Experten,

auf dem Server meines Providers läuft Confixx.
Umleitungen habe ich erfolgreich in die .htaccess geschrieben.
mod_rewrite ist aktiv.
Nur eins will mir nicht gelingen.

Ich möchte das http://www.haller-mtl.de/ vom Server auf
http://www.haller-mtl.de/homepage/willkommen/willkom…
umgeleitet wird.

Redirect permanent / http://www.haller-mtl.de/homepage/willkommen/willkommen.html

erzeugt eine Endlosschleife.

Im Moment habe ich einen META-Refresh in der index.html

Wer hat eine Idee, wie ich die Umleitung in der .htaccess formuliere?

Danke für die Mühe
und tschüs
Uwe

Hallo,

Nur eins will mir nicht gelingen.

Ich möchte das http://www.haller-mtl.de/ vom Server auf
http://www.haller-mtl.de/homepage/willkommen/willkom…
umgeleitet wird.

Redirect permanent /
http://www.haller-mtl.de/homepage/willkommen/willkommen.html

erzeugt eine Endlosschleife.

Mit mod_rewrite koenntest du schreiben:

RewriteEngine On
RewriteRule ^$ /homepage/willkommen/willkommen.html [R=301,L]

wichtig: Beim testen von redirects niemals auf den Browser verlassen - die meisten Browser cachen Redirects, was beim testen sehr unangenehm sein kann. Ich benutze immer wget stattdessen, das zeigt mir die redirects an und cached nichts.

Gruesse,
Moritz

Hallo Moritz,

danke, funktioniert. Dafür gibt es ein Sternchen.

RewriteEngine On
RewriteRule ^$ /homepage/willkommen/willkommen.html [R=301,L]

Nach meinem Verständnis müsste allerdings nun jeder Zugriff
auf jedes Unterverzeichnis zwangsläufig zur Willkommen-Seite führen.
Tut es aber nicht. Alle anderen Umleitungen funktionieren super.

Kannst du bitte als Satz formulieren, was hier genau passiert?

Danke für die Mühe
und tschüs
Uwe

Hallo,

RewriteEngine On
RewriteRule ^$ /homepage/willkommen/willkommen.html [R=301,L]

Nach meinem Verständnis müsste allerdings nun jeder Zugriff
auf jedes Unterverzeichnis zwangsläufig zur Willkommen-Seite
führen.
Tut es aber nicht. Alle anderen Umleitungen funktionieren
super.

Kannst du bitte als Satz formulieren, was hier genau passiert?

Von der URL wird vom Apachen zuerst der fuehrende / entfernt, d.h. aus „/foo“ wird „foo“, aus „/“ wird „“ (der leere String).

^ steht fuer den Anfang des Strings, $ fuer das Ende, also steht ^$ fuer den leeren String, d.h. die Regex matcht nur die URL „/“.
(R=301 baut einen Redirect mit status 301, „permanently moved“, L sorgt dafuer, dass nach dieser keine weitere Regel ausgefuert wird, wenn die Regex gematcht hat).

Gruesse,
Moritz

1 Like

Hallo Moritz,

so wünscht man sich eine Antwort. Das habe ich sogar verstanden.
Super erklärt.

Vielen Dank
und tschüs
Uwe

Hallo,

RewriteEngine On
RewriteRule ^$ /homepage/willkommen/willkommen.html [R=301,L]

Kannst du bitte als Satz formulieren, was hier genau passiert?

Von der URL wird vom Apachen zuerst der fuehrende / entfernt,
d.h. aus „/foo“ wird „foo“, aus „/“ wird „“ (der leere
String).

^ steht fuer den Anfang des Strings, $ fuer das Ende, also
steht ^$ fuer den leeren String, d.h. die Regex matcht nur die
URL „/“.
(R=301 baut einen Redirect mit status 301, „permanently
moved“, L sorgt dafuer, dass nach dieser keine weitere Regel
ausgefuert wird, wenn die Regex gematcht hat).

Gruesse,
Moritz
http://www.haller-mtl.de