[erledigt] Unterverzeichnis per htaccess umleiten

Fragen zu allen Themen rund ums Programmieren außerhalb von phpBB können hier gestellt werden - auch zu anderen Programmiersprachen oder Software wie Webservern und Editoren.
Antworten
Benutzeravatar
smart
Mitglied
Beiträge: 767
Registriert: 25.01.2005 02:05
Kontaktdaten:

[erledigt] Unterverzeichnis per htaccess umleiten

Beitrag 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!
Zuletzt geändert von smart am 10.03.2008 19:45, insgesamt 1-mal geändert.
Benutzeravatar
gn#36
Ehrenadmin
Beiträge: 9313
Registriert: 01.10.2006 16:20
Wohnort: Ganz in der Nähe...
Kontaktdaten:

Beitrag 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.
Begegnungen mit dem Chaos sind fast unvermeidlich, Aber nicht katastrophal, solange man den Durchblick behält.
Übertreiben sollte man's im Forum aber nicht mit dem Chaos, denn da sollen ja andere durchblicken und nicht nur man selbst.
Benutzeravatar
smart
Mitglied
Beiträge: 767
Registriert: 25.01.2005 02:05
Kontaktdaten:

Beitrag 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...
Max
Mitglied
Beiträge: 1051
Registriert: 20.02.2003 22:22

Re: Unterverzeichnis per htaccess umleiten

Beitrag 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
Benutzeravatar
smart
Mitglied
Beiträge: 767
Registriert: 25.01.2005 02:05
Kontaktdaten:

Beitrag 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... :(
Benutzeravatar
smart
Mitglied
Beiträge: 767
Registriert: 25.01.2005 02:05
Kontaktdaten:

Beitrag 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.
Antworten

Zurück zu „Coding & Technik“