You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users-de@httpd.apache.org by André Laugks <an...@netcologne.de> on 2006/09/06 15:38:04 UTC
VirtualHost _default_
Hallo!
Ich habe einen Default-VirtualHost konfiguriert, damit für Domains,
die keinen VirtualHost haben, eine Default-Webseite angezeigt wird.
<VirtualHost _default_>
DocumentRoot /www/foobar.de/htdocs
ServerName www.foobar.de
...
</VirtualHost>
<VirtualHost 123.123.123.123>
DocumentRoot /www/example.com/htdocs
ServerName www.example.com
...
</VirtualHost>
# weitere VirtualHost
<VirtualHost 123.123.123.123>
</VirtualHost>
Es wird aber immer die Webseite www.example.com angezeigt, der
VirtualHost der nach der Default-Angabe folgt, wenn eine Domain
keinen VirtualHost hat.
Ich würde darauf wetten, dass es unter Apache 1.3 funktioniert hat.
Apache: 2.0.55
OS: Linux
André Laugks
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
Re: VirtualHost _default_
Posted by Sebastian Kayser <ml...@skayser.de>.
* André Laugks <an...@netcologne.de> wrote:
> Ich habe einen Default-VirtualHost konfiguriert, damit für Domains,
> die keinen VirtualHost haben, eine Default-Webseite angezeigt wird.
>
> <VirtualHost _default_>
> DocumentRoot /www/foobar.de/htdocs
> ServerName www.foobar.de
> ...
> </VirtualHost>
>
> <VirtualHost 123.123.123.123>
> DocumentRoot /www/example.com/htdocs
> ServerName www.example.com
> ...
> </VirtualHost>
>
> # weitere VirtualHost
>
> Es wird aber immer die Webseite www.example.com angezeigt, der
> VirtualHost der nach der Default-Angabe folgt, wenn eine Domain
> keinen VirtualHost hat.
Wie schon vom Vorposter beschrieben, vermixt Du hier Mechnismen der
verschiedenen vhost-Konfigurationsmethoden.
,---- http://httpd.apache.org/docs/2.0/mod/core.html#servername
| Beachten Sie, dass der "Hauptserver" und jeder _default_-Server niemals
| bei einer Anfrage an einer NameVirtualHost-IP-Adresse bedient wird (es
| sei denn, Sie geben aus irgendwelchen Gründen NameVirtualHost an,
| definieren dann aber keine VirtualHosts für diese Adresse).
`----
Du hast für Deine IP 123.123.123.123 die Direktive NameVirtualHost
gesetzt (was korrekt ist), _default_ wird jedoch nur für IP-basierte
vhosts ausgewertet.
Lege für www.foobar.de einen vhost (analog zu Deinen sonstigen vhosts)
an, der in der Konfiguration vor allen weiteren vhosts steht. Damit
erreichst Du, was Du möchtest.
,---- http://httpd.apache.org/docs/2.0/vhosts/name-based.html
| ...
| Wenn nun eine Anfrage eintrifft, prüft der Server zuerst, ob sie eine
| IP-Adresse verwendet, die der NameVirtualHost-Anweisung entspricht. Ist
| dies der Fall, dann sieht er sich jeden <VirtualHost>-Abschnitt mit
| einer passenden IP-Adresse an und versucht den einen zu finden, dessen
| ServerName- oder ServerAlias-Anweisung mit dem gewünschten Hostnamen
| übereinstimmt. Findet er einen, dann verwendet er die Konfiguration
| dieses Servers. Wird kein passender virtueller Host gefunden, dann wird
| der erste angegeben virtuelle Host verwendet, dessen IP-Adresse paßt.
| ...
`----
Sebastian
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------
Re: VirtualHost _default_
Posted by Frank Thommen <fr...@drosera.ch>.
Hallo Andre,
> Ich habe einen Default-VirtualHost konfiguriert, damit für Domains,
> die keinen VirtualHost haben, eine Default-Webseite angezeigt wird.
>
> <VirtualHost _default_>
> DocumentRoot /www/foobar.de/htdocs
> ServerName www.foobar.de
> ...
> </VirtualHost>
> [...]
zu "_default_" sagt die Doku: "The string _default_, which is used only
with IP virtual hosting to catch unmatched IP addresses". Und weiter
"[...] note that any IP address that matches a NameVirtualHost directive
will use neither the "main" server config nor the _default_ virtual
host. See the name-based virtual hosting documentation for further
details.". Da Du offenbar namensbasierte virtuelle Hosts einsetzt wird
_default_ nicht funktionieren. Fuer diese virtuellen Server gilt, dass
der erste aufgelistete Host in der Config der Default ist, wenn der
entsprechende ServerName sonst nirgends gefunden wird. Da _default_
nicht wirklich eine IP-Nummer ist springt Apache in Deinem Fall wohl
jeweils direkt zu www.example.com (dem ersten Eintrag mit einer
gueltigen IP im VirtualHost-Tag).
Ich hoffe, das hilft
frank
--
Frank Thommen - EMBL Heidelberg
--------------------------------------------------------------------------
Apache HTTP Server Mailing List "users-de"
unsubscribe-Anfragen an users-de-unsubscribe@httpd.apache.org
sonstige Anfragen an users-de-help@httpd.apache.org
--------------------------------------------------------------------------