Zur Navigation

Mod_rewrite

Redirect nach RewriteRule ezeugt Endlosschleife

1 Mallmis (Gast)

Hallo liebes Forum,

ahbe schon mal in einem anderen Forum gefragt, nur bis jetzt noch keine Antwort erhalten, deshalb frage ich hier auch nach. Ich weiß Crosspostings sind verpöhnt, aber ich brauche dringend eine Lösung.

hier mein Problem:

deutsch/index.html soll auf de/index.php zeigen.
gleichzeitig soll de/index.php auf deutsch/index.html weiterleiten. Die Sprachauswahl habe ich per php gelöst. Hier wird schon richtig auf deutsch/index.html geleitet. Möchte jedoch, dass die de/index.php nicht mehr aufrufbar ist und eine 301 Weiterleitung bekommt.

Habe versucht dies so zu lösen:
Options FollowSymLinks
RewriteEngine on

RewriteBase /

#deutsch/index.html zeigt auf de/index.php
RewriteCond %{DOCUMENT_ROOT}/$1 !-f
RewriteRule ^(deutsch)/(index\.html)$ /de/index.php
#das funktioniert

#de/index.php soll nach deutsch/index.html 301 weiterleiten
RewriteCond %{DOCUMENT_ROOT}/$1 !-f
RewriteRule ^(de)/(index\.php)$ deutsch/index.html [R=301,L,QSA]
#das geht nicht, ist ja auch irgendwie klar

Dann wird mir der Umleitungsfehler angezeigt.


Fehler: Umleitungsfehler
Die aufgerufene Website leitet die Anfrage so um, dass sie nie beendet werden kann.

Klar, es wird ja einmal auf das eine und einmal auf das andere verwiesen und erzeugt eine Schleife. Ich wusste nur nicht, wie ich das genau lösen sollte.

Meine Frage:
Ist es denn grundsätzlich möglich eine RewriteRule plus eine Weiterleitung zu machen und wenn ja, bitte ich um einen kleinen Hinweis.

Ich danke im Voraus,

Michael

18.03.2013 10:24

2 Jörg Kruse

ahbe schon mal in einem anderen Forum gefragt, nur bis jetzt noch keine Antwort erhalten, deshalb frage ich hier auch nach. Ich weiß Crosspostings sind verpöhnt, aber ich brauche dringend eine Lösung.

In so einen Fall sollten aber zumindest die betreffenden Foren verlinkt werden, damit die Antwortenden nachlesen können, welche Lösungsvorschläge im jeweils andern Forum schon gemacht wurden.

Bei der Weiterleitung würde ich die Variable %{THE_REQUEST} prüfen, in etwa so:

RewriteCond %{THE_REQUEST} /de/index\.php
RewriteRule ^de/index\.php$ http://example.com/deutsch/index.html [R=301,L,QSA]

Das sollte sicherstellen, dass der Pfad de/index.php nicht das Ergebnis eines Rewrites ist

18.03.2013 10:40

3 Mallmis (Gast)

Hallo lieber Jörg,

vielen Dank für den Tipp. Hier der Link zum anderen Forum:

http://www.traum-projekt.com/forum/19-traum-dynamik/132900-mod_rewrite-redirect-rewriterule-ezeugt-endlosschleife.html


Ich werde von dort auch noch verlinken.

Ich werde den Lösungsvorschlag jetzt ausprobieren und gleich berichten.

Gruß,

Michael

18.03.2013 10:48

4 Mallmis (Gast)

Hallo,

vielen Dank noch einmal. Das hat wunderbar funktioniert, so sieht es jetzt aus, ich hoffe das mit dem %{HTTP_HOST} ist ok.

RewriteCond %{THE_REQUEST} /de/index\.php
RewriteRule ^(de)/(index\.php)$ http://%{HTTP_HOST}/deutsch/index.html [R=301,L,QSA]

Noch eine Frage:
es gibt ja nicht nur die deutsche Seite, sondern auch eine englische, spanische und französische. Sollte ich alles extra notieren oder könnte man die Angaben auch zussammenfassen? Habe das Problem die Dateien dann richtig zuzuweisen. Beispiel:

RewriteCond %{THE_REQUEST} ^/(de)?(en)?(es)?(fr)?/index\.php$
RewriteRule ^(de)?(en)?(es)?(fr)?/(index\.php)$ http://%{HTTP_HOST}/HIER KOMME ICH NICHT WEITER/index.html [R=301,L,QSA]

Vielen Dank,

Michael

18.03.2013 11:14

5 Jörg Kruse

Da das Länderkürzel durch einen String ersetzt wird, der sich mittels mod_rewrite nicht aus ersterem herleiten lässt, sehe ich keine Möglichkeit, die Sprachversionen in einer Regel zusammenzufassen.

18.03.2013 11:27 | geändert: 18.03.2013 11:28

6 Mallmis

Hallo,

vielen Dank. Dann werde ich das extra notieren. Habe jetzt Blut geleckt bezüglich dieses Themas und werde mich sicherlich (wenn ich darf) noch öfter melden. Ich möchte meine Links so Benutzer- und Suchmaschinenfreundlich wie möglich gestalten, mit Hilfe dieses Forums und viel Eigeninitiative wird mir das gelingen.

Gruß,

Michael

18.03.2013 11:31

7 Jörg Kruse

und werde mich sicherlich (wenn ich darf) noch öfter melden.

Aus meiner Sicht spricht nichts dagegen :)

18.03.2013 11:43

Beitrag schreiben (als Gast)

Die Antwort wird nach der Überprüfung durch einen Moderator freigeschaltet.





[BBCode-Hilfe]