J'héberge 2 sites web un pour mon réseaux local et un autre pour internet.

Je souhaite faire la distinction entre les requêtes venant d'internet et celles venant de mon réseaux local pour les rédiriger sur le site qui convient.

Le problème est lorsque l'on tape mon ip (internet) on accède aussi bien à mon internet qu'à mon intranet.
NameVirtualHost *:80
<VirtualHost *:80>mon intranet
        ServerName zioki86
        DocumentRoot "/home/www"
        UserDir public_html
        php_admin_flag display_errors On
</VirtualHost>

<VirtualHost *:80>mon internet
        ServerName picco.fr 
        DocumentRoot "/var/www/html"
</VirtualHost>
On m'a parlé d'ACL, je me suis renseigner mais je ne vois pas où les mettre

A+ 🙂
Bonjour,

Quand on utilise l'IP d'un serveur hébergeant plusieurs sites (à l'aide de virtual hosts), c'est le premier dans la liste qui sera utilisé. Plus généralement si Apache ne trouve pas le ServerName que demande le client, il prend le premier virtual host.

Dans ton cas, si on utilise l'IP, on tombe sur l'intranet. Si tu inverses l'ordre des 2 virtuals hosts ca devrait fonctionner.

Par contre ce n'est pas très sécurisé (rien ne m'empêche par exemple de déclarer zioki86 avec l'adresse IP de ton serveur dans le fichier hosts de ma machine, je pourrais alors avoir accès à ton intranet avec ce nom).

Il semble donc judicieux de limiter les IP clientes autorisées sur ton intranet (j'ai pris 192.168.0 comme réseau local) :

<Directory "/home/www">
Order deny,allow
Deny from all
Allow from 192.168.0
</Directory>

Cf cette doc : http://httpd.apache.org/docs/2.0/mod/mod_access.html
Merci çà fonctionne nickel.

Je viens d'apprendre l'utilisation de la balise directory et des Virtualhosts.

A+ 🙂