Seite 1 von 2

wildcard-domains auf einen vhost umleiten

Verfasst: 28.06.2006 21:50
von miccom
tag zusammen :),

folgendes möchte ich realisieren:

*.niedermayr.cc soll auf www.niedermayr.cc umleiten, aktive vhosts wie zb. smilies.niedermayr.cc und frdr.niedermayr.cc sollen davon aber nicht beeinträchtigt werden.

mittels htaccess klappt das auch:

Code: Alles auswählen

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.niedermayr\.cc$ [NC] [OR]
RewriteCond %{HTTP_HOST} !^frdr\.niedermayr\.cc$ [NC]
RewriteCond %{HTTP_HOST} !^smilies\.niedermayr\.cc$ [NC]
RewriteRule ^(.*)$ http://www.niedermayr.cc/$1 [R=301,L]
aber so eine datei müsste ich, damit sie auch in anderen verzeichnissen funktioniert, in jedem unterverzeichnis unterbringen. gibt es da keine lösung die ich direkt im apache im httpd.conf realisieren kann und sich quasi global auswirkt ohne aber die echten subdomains zu beeinflussen?

Verfasst: 29.06.2006 17:33
von Jensemann
Was spricht dagegen diesen Code in den Vhost-Container für *.niedermayr.cc zu packen?

Verfasst: 29.06.2006 17:57
von miccom
jensemann hat geschrieben:Was spricht dagegen diesen Code in den Vhost-Container für *.niedermayr.cc zu packen?
gar nichts, solange es funktioniert! :)

ich kann das also einfach in die httpd.conf packen ala:

Code: Alles auswählen

<VirtualHost *:80>
DocumentRoot 
ServerName www.niedermayr.cc
IndexOptions
DirectoryIndex 
ServerAlias niedermayr.cc *.niedermayr.cc *.niedermayr.eu
CustomLog 
SuexecUserGroup 
ScriptAlias 

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.niedermayr\.cc$ [NC] [OR]
RewriteCond %{HTTP_HOST} !^frdr\.niedermayr\.cc$ [NC]
RewriteCond %{HTTP_HOST} !^smilies\.niedermayr\.cc$ [NC]
RewriteRule ^(.*)$ http://www.niedermayr.cc/$1 [R=301,L] 

</VirtualHost>
die subdomains werden vor den vhosts inkludiert und bleiben davon unbeeinträchtigt?

Verfasst: 29.06.2006 18:05
von Jensemann
miccom hat geschrieben: ich kann das also einfach in die httpd.conf packen ala:

Code: Alles auswählen

<VirtualHost *:80>
DocumentRoot 
ServerName www.niedermayr.cc
IndexOptions
DirectoryIndex 
ServerAlias niedermayr.cc *.niedermayr.cc *.niedermayr.eu
CustomLog 
SuexecUserGroup 
ScriptAlias 

RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.niedermayr\.cc$ [NC] [OR]
RewriteCond %{HTTP_HOST} !^frdr\.niedermayr\.cc$ [NC]
RewriteCond %{HTTP_HOST} !^smilies\.niedermayr\.cc$ [NC]
RewriteRule ^(.*)$ http://www.niedermayr.cc/$1 [R=301,L] 

</VirtualHost>
Nicht ganz so. Pack da noch einen Directory-Container drum:

Code: Alles auswählen

<Directory /lala/lulu/web>
RewriteEngine On
RewriteCond %{HTTP_HOST} !^www\.niedermayr\.cc$ [NC] [OR]
RewriteCond %{HTTP_HOST} !^frdr\.niedermayr\.cc$ [NC]
RewriteCond %{HTTP_HOST} !^smilies\.niedermayr\.cc$ [NC]
RewriteRule ^(.*)$ http://www.niedermayr.cc/$1 [R=301,L] 
</Directory>
Und was machen die ganzen leeren Optionen da?
miccom hat geschrieben: die subdomains werden vor den vhosts inkludiert und bleiben davon unbeeinträchtigt?
Ich bin davon ausgegangen das du für jede Subdomain einen VirtualHost angelegt hast, also sowohl für frdr und auch für smilies. Dann musst du nur noch diese VirtualHosts vor diesen schreiben.

Apache nimmt den ersten Treffer oder wenn es gar keinen Treffer gibt den ersten definierten VirtualHost als standard.

Edit: Ich werd alt ...

Verfasst: 29.06.2006 18:31
von miccom

Code: Alles auswählen

<Directory /lala/lulu/web>

</Directory> 
dann gilt das ja wieder nur für ein verzeichnis, also gleich wie eine htaccess im root-dir, oder?
/e also in diesem fall nicht root sondern /lala/lulu/web - aber nicht für /lala/lulu/web/irgendwas

bei den leeren optionen habe ich die einträge entfernt, falls sie relevant sein sollten, poste ich sie.

Code: Alles auswählen

Ich bin davon ausgegangen das du für jede Subdomain einen VirtualHost angelegt hast, also sowohl für frdr und auch für smilies. Dann musst du nur noch diese VirtualHosts vor diesen schreiben.

Apache nimmt den ersten Treffer oder wenn es gar keinen Treffer gibt den ersten definierten VirtualHost als standard. 
jup, jede subdomain hat ihren eigenen vhost und da der include ja vor den anderen vhosts erfolgt, sollten sie davon unberührt bleiben.

Verfasst: 29.06.2006 18:36
von Jensemann
miccom hat geschrieben: dann gilt das ja wieder nur für ein verzeichnis, also gleich wie eine htaccess im root-dir, oder?
Nö. Auch für Unterverzeichnisse.
miccom hat geschrieben: bei den leeren optionen habe ich die einträge entfernt, falls sie relevant sein sollten, poste ich sie.
Ach so, ok. Sind nicht wichtig, war nur etwas irritiert.

Verfasst: 29.06.2006 22:08
von miccom
also auf meiner testdomain funktioniert das 1a, ich muss nicht einmal die subdomains als ausnahmen eintragen?!

Verfasst: 29.06.2006 22:43
von Jensemann
miccom hat geschrieben:ich muss nicht einmal die subdomains als ausnahmen eintragen?!
Ist nicht notwendig, nein. Ich veranschauliche dir das anhand eines Beispiels etwas, damit du begreifst wie Apache arbeitet:

Der Apache sitzt gemütlich am Feuer und raucht seine Pfeife. Nun kommt da so ein Arsch an und will ein Bild von smilies.deinedomain.tld. Jetzt guckt der gute alte Apache in seinem Buch (seiner Konfiguration) nach, sieht "aha, dafür gibt es ein extra Zelt (VirtualHost)". Er holt das Bild aus dem Zelt und wirft es dem Client vor die Füße.

Kommt hingegen eine Anfrage rein für die er kein extra Zelt finden kann, geht der ganze Mist an das 1. Zelt. Das ist dann z.B. das eine mit den Rewrite Geschichten. Und erst dann sagt die dicke alte Frau im Zelt "ey, da bisse hier falsch, frag mal im Zelt von www.niedermayr.cc"

Nu alles klar?

Verfasst: 29.06.2006 22:47
von miccom
glasklar! :D

unterverzeichnisse werden mir aber doch nicht umgeschrieben:

bsp.:
http://xyz.niedermayr.cc
wird korrekt auf
http://www.niedermayr.cc
umgeschrieben.

http://xyz.niedermayr.cc/forum/index.php
bleibt aber wie es ist.

Verfasst: 29.06.2006 22:57
von Jensemann
miccom hat geschrieben: http://xyz.niedermayr.cc/forum/index.php
bleibt aber wie es ist.
Argh, sorry. Ich sagte ja eben schon ich werde alt. Ich kann mich aber damit rausreden das ich RewriteRegeln selbst nicht so oft brauche und deswegen die Doku nur zu 75% im Kopf habe ;-)

Du kannst diese ganzen lustigen Rewrite* Befehle doch direkt in den VirtualHost packen, ohne Directory-Container darum. Dann sollte es auch für die Unterverzeichnisse gehen.

Ich war etwas geblendet von den Auth-Einstellungen. Würdest du zum Bleifisch auf forum/ einen Passwort Schutz einbauen, würde dieser ja auch für forum/lala gelten. Offenbar ist dies bei Rewrite* Befehlen anders ...