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
--------------------------------------------------------------------------