web-dev-qa-db-fra.com

Apache2: Refuser l'accès à mail.mydomain.com mais autoriser www.mondomaine.com, les deux points étant identiques

j'ai un serveur linux mail + http situé par Internet à www.mydomain.com. Le domaine a été acheté à GoDaddy donc après avoir configuré le serveur et obtenu l'adresse IP publique, je suis allé au profil de GoDaddy pour modifier les entrées A et MX de ma zone DNS afin de les diriger vers mon adresse IP publique du serveur. Dans l'entrée MX, je n'ai pas placé l'adresse IP, mais un alias appelé mail.mydomain.com.

Tout fonctionne bien, mais comme www.mydomain.com et mail.mydomain.com pointent tous deux vers x.y.w.z où Apache est en cours d'exécution, lorsque vous écrivez www.mydomain.com ou mail.mydomain.com dans le Internet Browser ma page Web par défaut est affichée. Je voudrais dire à Apache de ne montrer la page que si www.mydomain.com est écrit dans l'URL et de refuser l'accès si mail.mydomain.com est écrit. Est-ce que quelqu'un sait comment dois-je le faire? Merci :)

NameVirtualHost *:80

<VirtualHost *:80>
  ServerAdmin [email protected]
  DocumentRoot /var/www/html/mydomain.com/
  ServerName www.mydomain.com
  ErrorLog logs/mydomain_com-error_log
  CustomLog logs/mydomain_com-access_log common
</VirtualHost>
2
user846226

Créez simplement un autre hôte virtuel pour mail.example.com et vous pourrez dire à Apache de faire ce que vous voulez quand les gens vont vers cet hôte.

<VirtualHost *:80>
    ServerAdmin [email protected]
    ServerName mail.example.com
    ErrorLog logs/example_com-error_log
    # if you care about hits:
    CustomLog logs/example_com-access_log common

Ensuite, si vous souhaitez interdire totalement l'accès:

    <Directory />
        Order allow,deny
        Deny from all
    </Directory>

Ou pour rediriger vers votre domaine réel, faites ceci à la place:

    RedirectPermanent / http://www.example.com/

Ou vous pourriez faire autre chose.

</VirtualHost>
2
David Z

Si vous mettez les éléments suivants dans votre .htaccess, tout visiteur venant sur votre site au moyen d'un domaine autre que www.example.com sera forcé de se rediriger vers le bon domaine:

RewriteEngine On
RewriteCond %{HTTP_Host}   !^www\.example\.com$ [NC]
RewriteRule ^(.*)          http://www.example.com/$1 [L,R=301]
0
sanmai