Zur Navigation

htaccess - RewriteRule? Ordner incl. aller Unterordner und Dateien weiterleiten

1 Cicyl (Gast)

Hi,
ich sitze auf der Leitung, oder hab einige Bretter vorm Kopf..., könnt ihr mir weiter helfen?

Es geht um eine alte Seite, einer Domain, die nicht mehr genutzt werden soll.
Ich versuche es genauer zu beschreiben:

Es gab bisher diese Domain:
http://www.ALTEdomain.de
Diese wurde von den damaligen Verantwortlichen auf die neue Domain weitergeleitet (direkt über den Eintrag bei dem Provider)
Die alte Domain wird also nun bei Aufruf auf die neue Domain weitergeleitet und sieht so aus:
http://www.de.NEUEdomain.eu

Passt auch soweit, nur habe ich nun einige 404Fehler im Logfile die deshalb auftreten, weil alte Links wie:
http://www.ALTEdomain.de/admin/turnsfront/session/filter/Season/11B/0
http://www.ALTEdomain.de/admin/turnsfront/session/filter/Season/11B/0/1.html
http://www.ALTEdomain.de/admin/turnsfront/12.pdf

nun so aufgelöst werden:
http://www.de.NEUEdomain.eu/admin/turnsfront/session/filter/Season/11B/0
http://www.de.NEUEdomain.eu/admin/turnsfront/session/filter/Season/11B/0/1.html
http://www.de.NEUEdomain.eu/admin/turnsfront/12.pdf

Diese Verzeichnisstruktur ist aber natürlich nicht vorhanden, da die Seite komplett neu mit Wordpress erstellt wurde.

Ich suche also jetzt nach einer Möglichkeit in der .htaccess den Aufruf von
http://www.de.NEUEdomain.eu/admin/
mit all seinen Unterordnern und darin befindlichen Dateien grundsätzlich auf die neue Domain/ Startseite zu leiten:
http://www.de.NEUEdomain.eu

Es soll immer auf die neue Domain, geleitet werden: http://www.de.NEUEdomain.eu
ohne weitere (Unter-)Verzeichnisse anzusprechen.

Mein Eintrag in der .htaccess:
RewriteCond %{HTTP_HOST} ^www.de.domain\.eu$ [OR] RewriteCond %{HTTP_HOST} ^de.domain\.eu$
RewriteRule ^admin/(.*) http://www.de.domain.eu [R=301,L]

führt dazu, dass mir lediglich der Ordner "admin" aus der Verzeichnisstruktur entfernt wird und somit wieder eine 404 Fehlermeldung erscheint, weil der neue Link natürlich nicht existiert:
http://www.de.domain.eu/turnsfront/session/filter/Season/11B/0


Puuuhh, nicht ganz einfach das Problem zu beschreiben, könnt ihr es dennoch nachvollziehen? :/

Ich wäre echt dankbar für jede Hilfestellung, da ich mit Googeln und Forensuche bisher leider keinen Erfolg hatte!

Thx :-)

15.11.2012 21:23

2 Jörg Kruse

Da fehlt noch ein Slash am Ende:

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

... und die beiden Bedingungen sollten durch einen Zeilenumbruch getrennt sein

15.11.2012 22:12

3 Cicyl (Gast)

Vielen Dank Jörg,

ich habe Deinen Hinweis mit dem fehlenden Slash eingefügt.
Leider ergibt es immer noch den fehlerhaften Link:
http://www.de.domain.eu/admin/turnsfront/session/filter/Season/11B/0

Den Zeilenumbruch habe ich ebenfalls beachtet.
Der komplette Inhalt der .htaccess sieht nun wie folgt aus:
# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

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

</IfModule>
# END WordPress

15.11.2012 22:26

4 Jörg Kruse

Die Wordpress Rule greift vorher schon alle URLs ab.

Schieb die Weiterleitung mal nach vorne:

# BEGIN WordPress

<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /

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

RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

</IfModule>
# END WordPress

15.11.2012 22:30

5 Cicyl (Gast)

JÖRG!!!
Ich bin begeistert, das war offensichtlich das Problem. Ich wusste nicht, dass die von Dir beschriebene Wordpress Rule schon zuvor greift.

Deine Lösung ist prima!!!

Jetzt hätt ich nur noch eine Frage:
Ich verwende den Eintrag, wie beschrieben:
RewriteCond %{HTTP_HOST} ^www\.de\.domain\.eu$ [OR]
RewriteCond %{HTTP_HOST} ^de\.domain\.eu$
RewriteRule ^admin/(.*) http://www.de.domain.eu/ [R=301,L]

kann ich es erweitern für andere verzeichnisse, wie hier:
RewriteCond %{HTTP_HOST} ^www\.de\.domain\.eu$ [OR]
RewriteCond %{HTTP_HOST} ^de\.domain\.eu$
RewriteRule ^admin/(.*) http://www.de.domain.eu/ [R=301,L]
RewriteRule ^templates/(.*) http://www.de.domain.eu/ [R=301,L]

oder muss ich jede Rule neu angeben, wie hier?:
RewriteCond %{HTTP_HOST} ^www\.de\.domain\.eu$ [OR]
RewriteCond %{HTTP_HOST} ^de\.domain\.eu$
RewriteRule ^admin/(.*) http://www.de.domain.eu/ [R=301,L]

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

thx

15.11.2012 23:50

6 Jörg Kruse

Die RewriteConds gelten immer nur jeweils für die erste folgende Rule.

Man kann das ganze aber auch in zwei Zeilen zusammenfassen:

RewriteCond %{HTTP_HOST} ^(www\.)?de\.domain\.eu$
RewriteRule ^(admin|templates)/ http://www.de.domain.eu/ [R=301,L]

Das "(.*)" kann hierbei auch weggelassen werden, da das Muster nach hinten offen ist

16.11.2012 10:01 | geändert: 16.11.2012 10:02

Beitrag schreiben (als Gast)

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





[BBCode-Hilfe]