Seite 1 von 1

[erledigt] Unterverzeichnis per htaccess umleiten

Verfasst: 09.03.2008 21:32
von smart
Ich habe in meinem Webpaket unter der Domain www.hauptdomain.de eine Website angelegt, die in einem Unterordner liegt auf den von einer anderen Domain im selben Webpaket zugegriffen wird.

Beispiel:
www.domain.de greift zu auf www.hauptdomain.de/projekt1/cms/

Obwohl alle Links von www.domain.de nur Ziele innerhalb der eigenen Struktur (also www.domain.de/seite1.html, ...) verlinkt, ist trotzdem der "alte" Pfad in den Suchergebnissen von Google zu finden. Das würde ich nun gerne mit einer htaccess-Datei unterbinden. Dazu habe ich im Web folgendes gefunden:

Code: Alles auswählen

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?hauptdomain\.de$
RewriteRule ^(.*)$ http://www.domain.de/$1
Allerdings müsste die Ordnerstruktur dabei berücksichtigt werden. Meine Frage:

Wie müsste die htaccess-Datei korrekt lauten, damit alle Anfragen an www.hauptdomain.de/projekt1/cms/seite1.html auf www.domain.de/seite1.html umgeleitet werden? Und: Muss die Datei dann im Ordner www.hauptdomain.de/projekt1/cms/ gespeichert werden?

Bin dankbar für jeden Tipp!

Verfasst: 09.03.2008 23:50
von gn#36
Hier mal ein Vorschlag (funktioniert natürlich nur mit mod_rewrite und habe ich auch nicht getestet):

Code: Alles auswählen

RewriteEngine on

RewriteCond %{HTTP_HOST} ^(www\.)?hauptdomain\.de/$
RewriteRule ^projekt1/cms/(.*)$ http://www.domain.de/$1 [R=301]
Müsstest du vielleicht mit ein paar Slashes hier und da noch experimentieren (evtl. nach dem ^ z.b.), evtl. muss auch die ganze Hauptdomain mit rein in die Rule, ich habe das noch nicht für die Umleitung zwischen mehreren Domains gebraucht. Das [R=301] würde ich in jedem Fall dahinter setzen, da das eine permanente Verschiebung verkündet was du ja vermutlich möchtest. Das sind eigentlich alles nur irgendwelche regulären Ausdrücke.

Die andere Frage kann ich nicht so ganz nachvollziehen: Ich denke du willst mit den Dateien in der Domain umziehen? Dann sollten die unter dem Pfad doch eben nicht mehr erreichbar sein (sondern einen Redirect bekommen). Wie das intern auf dem Server gespeichert ist ist dabei belanglos. Die Dateien dürften auch gar nicht mehr an der ursprünglichen Stelle liegen müssen.

Verfasst: 10.03.2008 10:07
von smart
Danke für den Vorschlag. Habe es probiert und auch noch etwas mit den Slashes gespielt, aber leider ist alles ohne Erfolg. Habe es auch hiermit einmal probiert:

Code: Alles auswählen

RewriteEngine on

RewriteCond %{HTTP_HOST} !^www\.domain\.de/projekt1/cms/$
RewriteRule ^(.*)$ http://www.hauptdomain.de/$1 [L,R=301]
Dann sagt mir Firefox jedoch, die Seite würde die Anfrage ins Unendliche umleiten. Verstehe ich nicht...

Re: Unterverzeichnis per htaccess umleiten

Verfasst: 10.03.2008 18:08
von Max
smart hat geschrieben:Wie müsste die htaccess-Datei korrekt lauten, damit alle Anfragen an www.hauptdomain.de/projekt1/cms/seite1.html auf www.domain.de/seite1.html umgeleitet werden? Und: Muss die Datei dann im Ordner www.hauptdomain.de/projekt1/cms/ gespeichert werden?

So:

Code: Alles auswählen


Redirect permanent /ALTER_ORDNER http://www.ZIELDOMAIN.de

praktiziere ich es, wenn es nötig ist.
Einfach hochladen, also nicht in spezielle Ordner.


Gruß Max

Verfasst: 10.03.2008 19:35
von smart
Das würde dann tatsächlich zur endlosen Umleitung werden. Mein Problem ist ja, dass der Inhalt ja noch im selben Ordner liegt, er soll halt nur unter www.domain.de aufgerufen werden.

Meine htaccess müsste also sagen:
Faktisch ist aber alles im selben Ordner auf dem Server gespeichert und unter beiden Adressen erreichbar. Daher ja die Rewrite-Lösung. Nur funktioniert sie noch nicht... :(

Verfasst: 10.03.2008 19:44
von smart
Geschafft! Manchmal muss man einfach anders herum denken:

Code: Alles auswählen

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.domain\.de$ [NC]
RewriteRule ^(.*)$ http://www.domain.de/$1 [R=301,L]
Im Klartext: Alles, was nicht "www.domain.de" ist, das mache zu www.domain.de.