Je suis sur une instance EC2 et un domaine domain.com
est lié aux serveurs de noms EC2 et, heureusement, il sert mes pages si je tape domain.com
dans l'URL.
Cependant, lorsque la page est servie, elle résout l'URL en: 1.1.1.10/directory/page.php
.
À l’aide d’Apache, j’ai configuré le serveur virtuel virtuel suivant, en suivant les exemples fournis à l’adresse http://httpd.Apache.org/docs/2.0/dns-caveats.html
Listen 80
NameVirtualHost 1.1.1.10:80
<VirtualHost 1.1.1.10:80>
DocumentRoot /var/www/html/directory
ServerName domain.com
# Other directives here ...
<FilesMatch "\.(ico|pdf|flv|jpg|jpeg|png|gif|js|css|swf)$">
Header set Cache-Control "max-age=290304000, public"
</FilesMatch>
</VirtualHost>
Cependant, je ne reçois aucun changement dans la façon dont l'URL est affichée.
Il s’agit du seul VirtualHost configuré sur ce site et j’ai confirmé que c’est celui qui est utilisé, car j’ai réussi à le casser plusieurs fois lors de l’expérimentation de la configuration.
Les entrées de route53 que j'ai sont:
domain.com A 1.1.1.10
domain.com NS ns-11.awsdns-11.com
ns-111.awsdns-11.net
ns-1111.awsdns-11.org
ns-1111.awsdns-11.co.uk
domain.com SOA ns-11.awsdns-11.com. awsdns-hostmaster.Amazon.com. 1 1100 100 1101100 11100
Tout d'abord, utilisez <VirtualHost *:80>
au lieu de <VirtualHost 1.1.1.10:80>
. Ainsi, votre hôte virtuel s’applique quelle que soit l’adresse IP de votre serveur.
Deuxièmement, vous devez émettre une redirection si le nom d'hôte ne correspond pas à vos attentes. Je recommanderais d'avoir deux hôtes virtuels. Le premier est celui par défaut pour tout nom de domaine ou adresse IP inattendu. Il peut émettre une redirection vers le nom de domaine correct. Le second devrait être celui de votre nom de domaine. Quelque chose comme:
<VirtualHost *:80>
ServerName localhost.localdomain
Redirect permanent / http://domain.com/
</VirtualHost>
<VirtualHost *:80>
ServerName domain.com
DocumentRoot /var/www/html/directory
# Other directives here ...
</VirtualHost>
Vous devez configurer un enregistrement DNS sur le serveur - un enregistrement A
utilisant l'adresse IP comme destination/cible.
Par exemple, dans votre fichier VirtualHost
, vous devriez avoir quelque chose comme: -
<VirtualHost *:80>
ServerName www.domain.com
ServerAlias domain.com
DocumentRoot "/var/websites/domain/"
ErrorLog "/var/websites/domain/logs/error.log"
CustomLog "/var/websites/domain/logs/access.log"
</VirtualHost>
Évidemment, ce qui précède doit être modifié en fonction des chemins correspondants sur votre serveur, en fonction de la configuration (vous devrez peut-être créer les répertoires nécessaires s’ils n’existent pas déjà).
Ensuite, vous devrez redémarrer le serveur avec service httpd restart
pour que les modifications prennent effet. Si cela diffère sur une instance EC2, je ne suis pas sûr, mais c'est ce qui est nécessaire sur un serveur Apache.