Pourquoi ne http://localhost rediriger vers mon hôte virtuel par défaut une fois que j'ai configurer des serveurs virtuels sous Apache?
C'est probablement une question facile, mais je veux mieux comprendre comment Apache fonctionne avec les hôtes virtuels. Je suis à la configuration d'hôtes virtuels parce que je travail sur plusieurs sites à la fois et je ne veux pas utiliser des sous-répertoires. J'étais à peu près à l'aide de la valeur par défaut d'Apache httpd.fichier conf avec le DocumentRoot du doigt quelque chose comme "/www". J'ai décommenté les hôtes virtuels comprennent et a ajouté ce qui suit:
NameVirtualHost *:80 <VirtualHost *:80> ServerName site1.dev DocumentRoot /www/site1 </VirtualHost> <VirtualHost *:80> ServerName site2.dev DocumentRoot /www/site2 </VirtualHost>
Maintenant quand je vais http://localhost - je obtenir la page par défaut du site1.
Je suis sûr qu'il ya une raison pour laquelle cela a un sens, mais je ne suis pas tout à fait le comprendre. J'aurais pensé que seules les demandes qui ont été explicitement à http://site1.test seraient acheminés par le biais de cette directive et il ne serait pas juste de devenir la valeur par défaut. Quelqu'un peut m'expliquer pourquoi il devient la valeur par défaut.
- +1 parce que j'oublie ce
Vous devez vous connecter pour publier un commentaire.
http://httpd.apache.org/docs/1.3/vhosts/name-based.html
(Doit être vrai pour les 2.x aussi)
"En l'absence de correspondance de l'hôte virtuel est trouvée, alors le premier hôte virtuel qui correspond à l'adresse IP qui sera utilisée.
En conséquence, le premier serveur virtuel de la liste est l'hôte virtuel par défaut. Le DocumentRoot du serveur principal ne sera jamais utilisée lorsqu'une adresse IP correspond à la directive NameVirtualHost. Si vous souhaitez avoir une configuration spéciale pour les demandes qui ne correspondent à aucun serveur virtuel particulier, il suffit de mettre cette configuration dans un récipient et liste en premier dans le fichier de configuration."
la réponse 1 est correcte
et j'ajouterais avec namevirtualhosts comme la première entrée
essentiellement correspond pas nommées par ailleurs virtualhost
il doit être utilisé UNIQUEMENT à des captures accidentelles mal formés et rompus trafic
c'est à dire une machene avec une ip appelée john.domain.com l'exécution de http://www.domain.com et http://www.domain2.com comme valables des serveurs sur ip http://www.xxx.yyy.zzz peut avoir une config optimale ainsi que par le
Confirmant que pour Apache 2.x, le premier hôte virtuel (avec le même numéro de port) sera utilisé si un correspondant de l'hôte virtuel n'est pas trouvé.
http://httpd.apache.org/docs/2.2/vhosts/details.html
Vous pouvez toujours ajouter ce code ci-dessous, de le mettre juste en dessous de
NameVirtualHost *:80
de sorte que votre document par défaut de la racine est servi par défaut si aucun autre des hôtes virtuels trouvé.Une façon de le faire est:
Dans votre configuration des hôtes virtuels, entrer dans les locaux spécifiques nom du site que vous souhaitez activer au lieu d'utiliser un caractère générique:
<VirtualHost site1.dev:80>
au lieu de<VirtualHost *:80>
Éteindre
NameVirtualHost *:80
qui peut être fait en commentant dans vos vhosts.fichier confDans votre fichier /etc/hosts mentionnent à la fois des alias pour les IP de bouclage:
127.0.0.1 localhost site1.dev
Que c'est. Vous devriez voir que localhost va à la valeur par défaut DocumentRoot comme d'habitude et le site1.dev va sur le site que vous avez configuré en tant que serveur virtuel.