IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Apache Discussion :

Configuration des vhosts


Sujet :

Apache

  1. #1
    Membre éprouvé
    Avatar de Gecko
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Décembre 2008
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Décembre 2008
    Messages : 499
    Points : 1 277
    Points
    1 277
    Par défaut Configuration des vhosts
    Bonjour !!

    Après plusieurs jours de recherche, je reste en galère...

    Mon problème se situe au niveau de la configuration de mes vhosts, j'ai actuellement plusieurs sites qui sont correctement gérés par appache (ndd => dossier et vhost => dossier), par contre quand j'entre un vhost inexistant il pointe la racine de mon site web.

    Par exemple, quand je tape :
    www.ndd1.ext => /ndd1/www/
    www.ndd2.ext => /ndd2/www/
    bidon.ndd1.ext => /ndd1/www/ <= alors que je voudrais qu'il refuse la connexion vu que le vhosts n'existe pas...

    Si je veux faire ça c'est parce que des petits malins ont compris que ma configuration à ce niveau est pas géniale, du coup ils pointent des vhosts qui n'existent pas et les font référencer sur google... vive le duplicate content

    Voici mes fichier pour mes vhosts (je ne met que ceux pour un domaine, le second est configuré de la même manière):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
     
    <VirtualHost *:80>
        DocumentRoot /home/sites/ndd1/www/
        ServerName www.ndd1.ext
    </VirtualHost>
     
    <VirtualHost *:443>
        DocumentRoot /home/sites/ndd1/www/admin/
        ServerName admin.ndd1.ext
        SSLEngine on
     
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
     
        SSLCertificateFile /usr/local/apache_panel/conf/server.crt
     
        SSLCertificateKeyFile /usr/local/apache_panel/conf/server.key
     
        <Files ~ "\.(cgi|shtml|phtml|php3?)$">
            SSLOptions +StdEnvVars
        </Files>
        <Directory "/usr/local/apache_panel/cgi-bin">
            SSLOptions +StdEnvVars
        </Directory>
        SetEnvIf User-Agent ".*MSIE.*" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
        CustomLog /home/log/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    </VirtualHost>
     
    <VirtualHost *:443>
        DocumentRoot /home/sites/ndd1/www/manager/
        ServerName manager.ndd1.ext
        SSLEngine on
     
        SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL
     
        SSLCertificateFile /usr/local/apache_panel/conf/server.crt
     
        SSLCertificateKeyFile /usr/local/apache_panel/conf/server.key
     
        <Files ~ "\.(cgi|shtml|phtml|php3?)$">
            SSLOptions +StdEnvVars
        </Files>
        <Directory "/usr/local/apache_panel/cgi-bin">
            SSLOptions +StdEnvVars
        </Directory>
        SetEnvIf User-Agent ".*MSIE.*" \
        nokeepalive ssl-unclean-shutdown \
        downgrade-1.0 force-response-1.0
        CustomLog /home/log/ssl_request_log "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"
    </VirtualHost>
    J'ai essayé une multitude de combinaisons, rien y fait...

    Merci d'avance pour vos réponses et pour votre aide, cordialement, Bloody-wave

  2. #2
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Ce comportement d'Apache est tout ce qu'il y a de plus normal : quand il ne trouve pas ce qu'on lui demande, il utilise la configuration par défaut, à savoir le DocumentRoot principal.

    Dans l'absolu, ce que tu demandes n'est pas possible : Apache acceptera toujours la connexion (TCP) entrante puis fera quelque chose. Tu ne peux donc agir que sur ce quelque chose. Voici deux choses que tu peux faire :
    1. Mettre un fichier index vide (index.html avec rien dedans) à la racine du document root par défaut et mettre ceci dans le .htaccess de cette même racine :
      Code : Sélectionner tout - Visualiser dans une fenêtre à part
      ErrorDocument 404 /index.html
      Dans ce cas, le visiteur verra toujours une page blanche (tu peux toujours mettre qqch dans ce fichier index.html si tu veux autre chose qu'une page blanche).
      Une variante de cette solution consisterait à utiliser un fichier index.php qui couperait pûrement et simplement la connexion (mais je ne sais pas comment on peut faire en PHP). C'est sûrement ce qui se rapprocherait de ce que tu veux.
    2. Mettre un .htaccess à cette même racine avec ceci :
      Dans ce cas, les visiteurs verront un message d'erreur "forbidden" (accès refusé).

  3. #3
    Membre éprouvé
    Avatar de Gecko
    Homme Profil pro
    Développeur décisionnel
    Inscrit en
    Décembre 2008
    Messages
    499
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Développeur décisionnel

    Informations forums :
    Inscription : Décembre 2008
    Messages : 499
    Points : 1 277
    Points
    1 277
    Par défaut
    Bonjour Mac,

    merci de te pencher sur mon problème

    Le soucis qu'il y à avec les deux propositions que tu m'as faites c'est que ça ne fonctionne pas.

    L'erreur 404 est déjà définie, mais n'est pas traité par défaut quand le vhost est bidon.

    Pour le deny from all, il s'applique aussi aux vhosts qui sont valides.

    J'ai pensé la chose différemment mais je ne vois pas comment faire, le but serai de mettre dans mon htaccess les vhosts à autoriser, les autres se retrouvant automatiquement sur une page pré-définie.

    J'ai testé ça, mais ça ne fonctionne pas vraiment compte tenu que mon www redirige vers ma page 404.html

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    # bidon. vers 404/
    RewriteCond %{HTTP_HOST} ^(.*).ndd1.ext$
    RewriteRule ^(.*) http://www.ndd1.ext/404.html  [QSA,L,R=404]
    Est ce qu'il est possible de mettre des conditions pour le traitement de HTTP_HOST, un peu comme php avec les if...

    if (%{HTTP_HOST} != www)
    redirige vers 404
    else
    affiche la page.

    Merci d'avance pour ton aide, cordialement, Bloody-wave

  4. #4
    Rédacteur
    Avatar de _Mac_
    Profil pro
    Inscrit en
    Août 2005
    Messages
    9 601
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 9 601
    Points : 12 977
    Points
    12 977
    Par défaut
    Avec le retard dû aux vacances

    Si tu as toujours le problème, ce que je comprends c'est que tu as un VH qui a le même document root que le document root par défaut. C'est bien ça ? Dans ce cas, pourquoi ne pas indiquer un autre document root par défaut vers un chemin qui n'existe pas ? Ca devrait faire l'affaire, je pense.

    Sinon, pour ton test, oui c'est faisable avec de l'URL rewriting :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine on
     
    RewriteCond %{HTTP_HOST} !^www\.
    RewriteRule .* - [F]
    qui signifie : "pour tout ce qui arrive avec un nom d'hôte ne commençant pas par 'www.' est refusé".

Discussions similaires

  1. Réponses: 6
    Dernier message: 30/06/2010, 18h34
  2. Configuration des droits pour samba avec ftp et www
    Par Alkmie dans le forum Réseau
    Réponses: 2
    Dernier message: 07/11/2004, 13h50
  3. [Dev-Pascal] Configuration des couleurs de l'éditeur impossible
    Par weiouch dans le forum Autres IDE
    Réponses: 3
    Dernier message: 18/10/2004, 19h02
  4. Configuration des disques sur un serveur pour Oracle
    Par hkhan dans le forum Administration
    Réponses: 5
    Dernier message: 29/09/2004, 12h57
  5. [JBUILDER 9][configuration des serveurs]
    Par bozo dans le forum JBuilder
    Réponses: 4
    Dernier message: 19/08/2003, 09h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo