Zur Navigation

Alles Umleiten bis auf ein paar Verzeichnisausnahmen?

1 Machtl (Gast)

Tag Leute!

Ich hoffe jemand von euch kann mir helfen.

Folgendes Problem:

Auf einem Server mit der Domain www.xxx.at liegt in einem Unterverzeichnis also www.xxx.at/yyy die Seite mit der Domain
www.zzz.at

Das wurde mal vor längerer Zeit so gemacht, weil die Seite www.zzz.at nicht so wichtig war, und eben auf www.xxx.at noch genug Speicherplatz vorhanden war.

So, nun ist es aber so, das alle Anfragen die an die Domain www.xxx.at erfolgen automatisch auf www.zzz.at umgeleitet werden sollen. Das soll wirklich für alle Anfragen gelten, also ob da jetzt irgendwelche Bilder requestet werden oder dergleichen, gegliche im Internet vorhandenen Links auf diese Domain sollen auf die Root-Seite der www.zzz.at Domain Seite umgelenkt werden.

Ok, das wäre noch nicht das Problem. Aber wie gesagt, die seite www.zzz.at liegt im Unterverzeichnis yyy von www.xxx.at
Das würde also wenn man da permanent alles umleiten würde zu einer Endlosschleife kommen.

So, nun habe ich mit folgendem Teil dieses Verzeichnis, sowie ein CGI-Verzeichnis welches trotz der ganzen Umleitungen noch erreichbar bleiben soll, umgeleitet:

(Die .htaccess liegt eben im Root-Verzeichnis vom www.xxx.at)

RewriteEngine on
RewriteCond %{REQUEST_URI} !cgi_verzeichnis(.*)
RewriteCond %{REQUEST_URI} !yyy(.*)
RewriteRule ^([^/]+)$ http://www.zzz.at [R=301,L]

Siehe da, das funktioniert auch, aber Anfragen die auf ganze Verzeichnisse gehen, z.B. www.xxx.at/pics/ werden nicht umgeleitet.

Wie müßte ich denn die Rules anpassen, damit auch direkte Verzeichniszugriffe umgeleitet werden, sofern es sich eben nicht
um einen Zugriff in das yyy Verzeichnis handelt?

DANKE!

Ciao
Martin

20.02.2008 21:56

2 Jörg Kruse

Hallo Martin,

ich würde einfach den Host abfragen:

RewriteEngine on
RewriteCond %{REQUEST_URI} !cgi_verzeichnis(.*)
RewriteCond %{HTTP_HOST} (www\.)?xxx\.at
RewriteRule ^(.*)$ http://www.zzz.at/$1 [R=301,L]

Deine Lösung wird m.E. nicht funktionieren, da "yyy" nicht im Request URI enthalten ist

20.02.2008 23:09 | geändert: 20.02.2008 23:14

3 Martin (Gast)

Hi,

wie kann ich denn hier das "www" bei der Hostabfrage optional machen?

Nun, ich weiß leider nicht genau wie die beim Provider das verlinkt haben, also welche Anfrage da jetzt genau kommt wenn man auf die "Unterdomain" geht, also ob da der HTTP_HOST dann wirklich nur den Namen der "Unterdomain" enthält, oder ob das eben irgendwo so verändert wird, das aus www.zzz.at eben www.xxx.at/yyy wird

Ciao
Martin

21.02.2008 10:28

4 Martin (Gast)

Ah, gerade gesehen, das ist ja scho optional :-)

DANKE!!!

21.02.2008 10:30

5 Martin (Gast)

hmmm.. habs jetzt ausprobiert.

eine anfrage wie:

www.xxx.at wird umgeleitet
xxx.at wird umgeleitet
www.xxx.at/egalwas wird nicht umgeleitet
www.xxx.at/verzeichnisdasexistiert wird nicht umgeleitet

Ciao
Martin

21.02.2008 10:32

6 Jörg Kruse

www.xxx.at/egalwas wird nicht umgeleitet
www.xxx.at/verzeichnisdasexistiert wird nicht umgeleitet

Eventuell hilft hier die Angabe einer RewriteBase:

RewriteEngine on

RewriteBase /

RewriteCond %{REQUEST_URI} !cgi_verzeichnis(.*)
RewriteCond %{HTTP_HOST} (www\.)?xxx\.at
RewriteRule ^(.*)$ http://www.zzz.at/$1 [R=301,L]

Ansonsten sollte dies sio funktionieren - es sei denn, andere Rules funken dazwischen

Nun, ich weiß leider nicht genau wie die beim Provider das verlinkt haben, also welche Anfrage da jetzt genau kommt wenn man auf die "Unterdomain" geht, also ob da der HTTP_HOST dann wirklich nur den Namen der "Unterdomain" enthält, oder ob das eben irgendwo so verändert wird, das aus www.zzz.at eben www.xxx.at/yyy wird

Es handelt es sich dabei wohl um die interne Zuordnung eines VirtualHosts (in diesem Fall "www.zzz.at") zu einem Verzeichnis im Dateisystem ("/irgendeinpfadimdateisystem/yyy") - ein URI www.xxx.at/yyy spielt dabei keine Rolle

21.02.2008 10:44

Beitrag schreiben (als Gast)

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





[BBCode-Hilfe]