2010-06-11 7 views
2

Ci-dessous mon fichier de configuration:ServerAlias ​​www.example.com n'est pas reconnu

NameVirtualHost 12.34.56.78:80 

<VirtualHost 12.34.56.78:80> 
    ServerAdmin [email protected] 
    ServerName domain1.com 
    ServerAlias www.domain1.com 
    DocumentRoot /srv/www/domain1.com/public_html1/ 
    ErrorLog /srv/www/domain1.com/logs/error.log 
    CustomLog /srv/www/domain1.com/logs/access.log combined 
</VirtualHost> 

<VirtualHost 12.34.56.78:80> 
    ServerAdmin [email protected] 
    ServerName domain2.com 
    ServerAlias www.domain2.com 
    DocumentRoot /srv/www/domain2.com/public_html1/ 
    ErrorLog /srv/www/domain2.com/logs/error.log 
    CustomLog /srv/www/domain2.com/logs/access.log combined 
</VirtualHost> 

La chose est quand je mets www.domain1.com dans le navigateur, apache2 ne récupère pas la page Web réside dans /srv/www/domain1.com/public_html1/, au lieu, il obtient la page de la racine du document par défaut définie dans un autre fichier. Cependant, si je mets www.domain2.com, tout fonctionne bien. Je ne vois aucune différence entre deux blocs de configuration VirtualHost, donc je me demande ce qui fait la différence. BTW, je n'ai mis aucun fichier .htaccess sous leur racine de document.

Répondre

5

Essayez de vérifier votre configuration Apache en:

/usr/sbin/S apache2ctl

Je suppose que votre hôte virtuel "par défaut" utilise "www.domain1.com" comme ServerName, ainsi il répond à la demande à "www.domain1.com".

Sur mon ordinateur, cela s'est produit parce que "www.domain1.com" était le nom d'hôte de ma machine. Si ServerName n'est pas spécifié, Apache essaie de deviner - provoquant le problème mentionné ci-dessus. J'ai résolu cela en spécifiant "ServerName par défaut" dans les sites disponibles/par défaut.

Cela pourrait être une aide aussi bien:

http://httpd.apache.org/docs/current/dns-caveats.html

+0

Quel outil incroyable qui est incroyablement difficile à trouver. Avoir cette information simple sur l'endroit où Apache pense que vos sites résolvent est incroyable. Merci beaucoup. – Joseph

1

Je voulais juste dire que cela m'a pris trop, et en changeant le ServerName dans le site apache par défaut travaillé pour moi, comme tout simplement désactiver ce site en utilisant

a2dissite défaut

rechargeant ensuite apache.

+0

Bienvenue dans Stack Overflow! Merci pour votre message! Merci de ne pas utiliser les signatures/slogans dans vos messages. Votre boîte utilisateur compte comme votre signature, et vous pouvez utiliser votre profil pour publier toute information sur vous que vous aimez. [FAQ sur les signatures/slogans] (http://stackoverflow.com/faq#signatures) –

+0

Cela a fonctionné pour moi. Merci beaucoup – migueloop

2

Si vous êtes sous Windows et en utilisant probablement ZendSever, que vous devez faire ensuite:

Ouvrir le fichier "hosts" dans le répertoire "C: \ Windows \ System32 \ drivers \ etc"

Ajouter

127.0.0.1 www.domain1.com

sous

127.0.0.1 localhost 127.0.0.1
domain1.com


Il devrait ressembler à ceci:

127.0.0.1 localhost

127.0.0.1 domain1.com

127.0.0.1 www.domain1.com

127.0.0.1 domain2.com

127,0.0,1 www.domain2.com

127.0.0.1 domain3.com

127.0.0.1 www.domain3.com

Tous les domaines doivent être enregistrés dans ce fichier.