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 :

Hôtes virtuels pour l'hébergement de masse


Sujet :

Apache

  1. #1
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut Hôtes virtuels pour l'hébergement de masse
    Bonjour,

    Je suis à la recherche d'une solution générique d'hébergement de masse, donc j'aimerai éviter de rajouter un VirtualHost à chaque site créé et ainsi garder un fichier vhost propre et de ne pas avoir à recharger à chaque changement apache.

    Une tel configuration est-elle possible ?

  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
    Oui : dans le monde Apache, cela s'appelle le mass virtual hosting (avé l'accent).

  3. #3
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2009
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France, Savoie (Rhône Alpes)

    Informations forums :
    Inscription : Mai 2009
    Messages : 115
    Points : 53
    Points
    53
    Par défaut
    Bonjour,

    je suis un peu dans le même cas que vous. Je ne suis pas expert, mais il me semble qu'il soit possible de faire un include * (enfin quelque chose comme ça) dans le vhost de base pour charger d'autres vhost créer dynamiquement.

    Ça permet de préserver le vhost de base.

    Bon c'est pas d'une grande aide, mais j'espère que ca vous mettre sur des pistes.

  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
    Citation Envoyé par nicko_73 Voir le message
    il me semble qu'il soit possible de faire un include * (enfin quelque chose comme ça) dans le vhost de base pour charger d'autres vhost créer dynamiquement.
    Non, pas dynamiquement. Cela fera en sorte qu'Apache ira lire tous les fichiers se trouvant dans un certain répertoire au démarrage mais pas une fois qu'il a démarré. Pour la vraie conf dynamique à chaud sans redémarrage, c'est mass virtual hosting ou autre conf "souple" par .htaccess ou code PHP "flexible" prenant en compte le hostname du site ou autre.

  5. #5
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Merci,

    Je vais tenter d'expliquer ce que j'aimerai faire.

    Premièrement, voilà la structure de mon site :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    /var/www/ #répertoire de base du site
    /var/www/host/ # tous les sites créés seront stocké ici
    /var/www/host/site1/ # un site créé nommé site1
    Ensuite, les domaines :
    www.domaine.tld pointe sur /var/www/
    www.domaine2.tld pointe sur /var/www/host/
    site1.domaine2.tld pointe sur /var/www/host/site1/

    Maintenant, je vous présente ce que j'ai fait.

    - Mon fichier apache2.conf
    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
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
     
    ServerRoot "/etc/apache2"
    LockFile /var/lock/apache2/accept.lock
    PidFile ${APACHE_PID_FILE}
    Timeout 300
    KeepAlive On
    MaxKeepAliveRequests 100
    KeepAliveTimeout 15
    <IfModule mpm_prefork_module>
        StartServers          5
        MinSpareServers       5
        MaxSpareServers      10
        MaxClients          150
        MaxRequestsPerChild   0
    </IfModule>
    <IfModule mpm_worker_module>
        StartServers          2
        MinSpareThreads      25
        MaxSpareThreads      75 
        ThreadLimit          64
        ThreadsPerChild      25
        MaxClients          150
        MaxRequestsPerChild   0
    </IfModule>
    <IfModule mpm_event_module>
        StartServers          2
        MaxClients          150
        MinSpareThreads      25
        MaxSpareThreads      75 
        ThreadLimit          64
        ThreadsPerChild      25
        MaxRequestsPerChild   0
    </IfModule>
    User ${APACHE_RUN_USER}
    Group ${APACHE_RUN_GROUP}
    AccessFileName .htaccess
    <Files ~ "^\.ht">
        Order allow,deny
        deny from all
    </Files>
    <Directory />
      Order Deny,Allow
      Deny from all
      Options None
      AllowOverride All
    </Directory>
    DefaultType text/plain
    HostnameLookups Off
    ErrorLog /var/log/apache2/error.log
    LogLevel warn
    Include /etc/apache2/mods-enabled/*.load
    Include /etc/apache2/mods-enabled/*.conf
    Include /etc/apache2/httpd.conf
    Include /etc/apache2/ports.conf
    LogFormat "%v:%p %h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" vhost_combined
    LogFormat "%h %l %u %t \"%r\" %>s %O \"%{Referer}i\" \"%{User-Agent}i\"" combined
    LogFormat "%h %l %u %t \"%r\" %>s %O" common
    LogFormat "%{Referer}i -> %U" referer
    LogFormat "%{User-agent}i" agent
    CustomLog /var/log/apache2/other_vhosts_access.log vhost_combined
    Include /etc/apache2/conf.d/
    Include /etc/apache2/sites-enabled/
    Include /etc/phpmyadmin/apache.conf
    AddType application/x-httpd-php5 .php5
    Ensuite, j'ai supprimé les fichiers default et 000-default de /etc/apache2/sites-available/ et /etc/apache2/sites-enabled/

    J'ai créé un fichier domaine dans /etc/apache2/sites-available/

    Puis j'ai fait a2ensite domaine

    Voilà le contenu du fichier domaine :
    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
    NameVirtualHost 127.0.0.1:*
     
    <VirtualHost 127.0.0.1:*>
    ServerName domaine.tld
    ServerAlias domaine.tld *.domaine.tld
    DocumentRoot /var/www       
       <Directory /var/www>
          Options Indexes FollowSymLinks MultiViews
                    AllowOverride All
               Order allow,deny
                 allow from all
     
       </Directory>
    </VirtualHost>
     
    <VirtualHost 127.0.0.1:*>
    ServerName domaine2.tld
    ServerAlias domaine2.tld *.domaine2.tld
    DocumentRoot /var/www/host
    RewriteEngine on  
    RewriteCond %{HTTP_HOST} ^(www.)?([^.]+).domaine2.tld
    RewriteCond %{DOCUMENT_ROOT}/%2 -d
    RewriteRule (.*) /%2/$1 [L]
    php_admin_value open_basedir /var/www/host       
       <Directory /var/www/host>
          Options Indexes FollowSymLinks MultiViews
                    AllowOverride All
               Order allow,deny
               allow from all
       </Directory>
    </VirtualHost>
    Vu que pour le moment je travaille en local pour m'entrainer avant d'acquérir un serveur privé virtuel chez OVH, j'ai éditer le fichier /etc/hosts afin d'accepter les domaines www.domaine2.tld site1.domaine2.tld et www.domaine.tld sur l'ip 127.0.0.1 .

    Bref pour le moment ca marche à peu prés.
    C'est à dire que :
    - http://www.domaine.tld pointe bien sur /var/www/
    - http://www.domaine2.tld pointe bien sur /var/www/host/
    - Mais http://site1.domaine2.tld est redirigé vers http://www.domaine2.tld/site1/ ,or j'aimerais que l'URL reste intacte (1er problème).

    Pour des raisons de sécurité, j'aimerai que les scripts exécutés depuis les sites créés ne puisse accéder aux fichiers des autres sites ou du mien.
    On m'a conseillé open_basedir mais je n'ai pas trouvé comment le configurer dynamiquement. (2eme problème).
    On m'a également conseillé SuPHP, je n'ai pas encore eu le temps de voir ce côté là.

    _Mac_ , je suis déjà allé voir sur le site que tu m'as fourni sans avoir réussi quoi que ce soit.
    Parce que pour moi la solution qui répondait à mon problème était d'éditer le fichier domaine de la façon suivante, mais là apache ne veut plus démarrer [fail] !
    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
    UseCanonicalName Off
     
    LogFormat "%V %h %l %u %t \"%r\" %s %b" vcommon
     
    <Directory /var/www>
    Options FollowSymLinks
    AllowOverride All
    </Directory>
     
    <Directory /var/www/host>
    Options FollowSymLinks
    AllowOverride None
    </Directory>
     
    <VirtualHost 127.0.0.1>
    ServerName domaine.tld
     
    CustomLog logs/access_log.domaine vcommon
     
    VirtualDocumentRoot /var/www
    VirtualScriptAlias /var/www
    </VirtualHost>
     
    <VirtualHost 127.0.0.1>
    ServerName domaine2.tld
     
    CustomLog logs/access_log.domaine2 vcommon
     
    VirtualDocumentRoot /var/www/host/%2
    </VirtualHost>

  6. #6
    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
    Petite remarque préliminaire : utiliser une arborescence comme la décrit, je ne trouve pas que ce soit une bonne pratique, bien au contraire. Dis-toi par exemple qu'on peut accéder au site de site1.domaine2.tld avec l'URL http://www.domaine.tld/host/site1/ (à condition de le savoir, bien sûr)... Bref, les sites ne sont pas étanches entre eux, ce qui n'est pas une bonne idée.

    Par ailleurs, une telle structure empêche d'utiliser le mass virtual hosting (VirtualDocumentRoot), ce que je trouve dommage car dans ton cas, c'est tout indiqué. Une structure de répertoire plus classique est la suivante :

    /var/domaine.tld/www pour www.domaine.tld
    /var/domaine2.tld/www pour www.domaine2.tld
    /var/domaine2.tld/site1 pour site1.domaine2.tld
    ...

    L'intérêt c'est que pour *.domaine.tld (respectivement *.domaine2.tld), tu fais un simple VirtualDocumentRoot /var/domaine.tld/%1 (respectivement VirtualDocumentRoot /var/domaine2.tld/%1), voire encore plus générique avec un seul VH qui fait tout et VirtualDocumentRoot /var/%2+/%1.


    Pour le premier problème, tes règles me semblent correctes, je ne comprends pas le comportement observé. Ce que tu peux faire, c'est activer les logs de mod_rewrite (RewriteLog et RewriteLogLevel) pour comprendre pourquoi Apache fait une redirection externe.


    Pour le second problème, aucune idée, je ne connais pas ces modules.


    Citation Envoyé par kanaziwok Voir le message
    Parce que pour moi la solution qui répondait à mon problème était d'éditer le fichier domaine de la façon suivante, mais là apache ne veut plus démarrer [fail] !
    Pour ce problème spécifique, il faut aller consulter les logs d'erreur d'Apache (error_log) pour connaître la raison. Comme ça, je ne la vois pas.

  7. #7
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Ok merci _Mac_ ,

    Mais avec une tel structure, est-il toujours possible pour des fichiers présent dans /var/domaine.tld/www/ d'accéder à /var/domaine2.tld/site1/ par exemple, car certains script de mon projet modifie des fichiers dans les dossiers des sites créés.

    Si non, il faudra que je revienne à ma configuration précédente.

    En tout cas j'ai modifié mon fichier /etc/apache2/sites-available/domaine de la façon suivante :

    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
    NameVirtualHost 127.0.0.1
     
    UseCanonicalName Off
     
     
    <Directory /var/domaine.tld>
    Options FollowSymLinks
    AllowOverride All
    </Directory>
     
    <Directory /var/domaine2.tld>
    Options FollowSymLinks
    AllowOverride All
    </Directory>
     
    <VirtualHost 127.0.0.1>
    ServerName *.domaine.tld
    VirtualDocumentRoot /var/domaine.tld/%1
    </VirtualHost>
     
    <VirtualHost 127.0.0.1>
    ServerName *.domaine2.tld
    VirtualDocumentRoot /var/domaine2.tld/%1
    </VirtualHost>
    Mais là, si je tape http://www.domaine.tld ou http://www.domaine2.tld j'ai le message suivant dans error.log :
    [Sun Mar 14 18:21:09 2010] [error] [client 127.0.0.1] client denied by server configuration: /var/domaine.tld
    Et bien sur une erreur 403 dans le navigateur.

    J'ai créé la structure que tu m'a conseillé.

    Il y a un truc que je ne comprend pas non plus, si je tape site1.domaine2.tld, le navigateur me redirige automatiquement vers www.domaine2.tld/site1/ alors qu'il n'y a plus de règle de redirection ...
    EDIT: Ce dernier problème a été résolu en supprimant les cookies et le cache de Firefox.

  8. #8
    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
    Oui, c'est possible, car PHP a accès au file system : il peut s'affranchir des URL si les droits système sont suffisants.

    Pour ton problème de 403, il faut ajouter
    dans tes <Directory>.

  9. #9
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Citation Envoyé par _Mac_ Voir le message
    Oui, c'est possible, car PHP a accès au file system : il peut s'affranchir des URL si les droits système sont suffisants.
    Parfait

    Citation Envoyé par _Mac_ Voir le message
    Pour ton problème de 403, il faut ajouter
    dans tes <Directory>.
    Merci.
    voilà mon fichier vhost domaine :
    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
    NameVirtualHost 127.0.0.1
     
    UseCanonicalName Off
     
     
    <Directory /var/www/domaine.tld>
    	Options Indexes FollowSymLinks MultiViews
    	AllowOverride All
    	Order allow,deny
    	allow from all
    </Directory>
     
    <Directory /var/www/domaine2.tld>
    	Options Indexes FollowSymLinks MultiViews
    	AllowOverride All
    	Order allow,deny
    	allow from all
    </Directory>
     
    <VirtualHost 127.0.0.1>
    ServerName domaine.tld
    ServerAlias domaine.tld *.domaine.tld
    VirtualDocumentRoot /var/www/domaine.tld/%1
    </VirtualHost>
     
    <VirtualHost 127.0.0.1>
    ServerName domaine2.tld
    ServerAlias domaine2.tld *.domaine2.tld
    VirtualDocumentRoot /var/www/domaine2.tld/%1
    </VirtualHost>
    Tout marche , sauf un truc :
    [Sun Mar 14 20:04:23 2010] [error] [client 127.0.0.1] SoftException in Application.cpp:217: File "/var/www/domaine2.tld/site1/test.php" is not in document root of Vhost "/htdocs"
    [Sun Mar 14 20:04:23 2010] [error] [client 127.0.0.1] Premature end of script headers: test.php
    De même, j'ai créé un sous domaine phpmyadmin.domaine.tld pour accéder à PhpMyAdmin plus facilement, de même si je tente d'y accéder :
    [Sun Mar 14 20:08:26 2010] [error] [client 127.0.0.1] SoftException in Application.cpp:217: File "/var/www/domaine.tld/phpmyadmin/index.php" is not in document root of Vhost "/htdocs"
    [Sun Mar 14 20:08:26 2010] [error] [client 127.0.0.1] Premature end of script headers: index.php
    Maintenant, il va falloir que je m'attaque à la configuration des droits pour des raisons de sécurité.
    Parce que j'aimerai que les utilisateurs ne puissent pas accéder/modifier/supprimer des fichiers d'autres sites ou du mien.
    julp m'avais conseillé open_basedir mais je ne sais pas si ca marche dans mon vhost là ...

  10. #10
    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
    C'est quoi ce /htdocs ? Où y a-t-il ce répertoire dans la conf Apache ?

  11. #11
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Enfet, c'était le module SuPHP qui provoquait cela.
    Je l'ai désinstallé.
    Et tout fonctionne.

    Il faut juste que maintenant chaque utilisateur ne puisse pas sortir de son dossier respectif.
    En rajoutant :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    php_admin_value open_basedir /var/www/domaine2.tld
    dans le VirtualHost je peux ainsi confiner tous les sites, mais pas indépendamment, site1 pourra très bien modifier/voir les fichiers de site2 et etc ...

    Donc j'aimerai savoir quels sont mes options, et surtout quel est/sont la/les plus simple(s) ?
    Voilà le lien du sujet ou j'avais commencé pour trouver comment restreindre l'accés aux utilisateurs .

    Merci à toi _Mac_ pour ton aide.

  12. #12
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Re,

    J'aimerais avoir une dernière petite aide.

    J'ai finalement choisit de créer un VirtualHost par sous domaines créés pour le domaine2.tld.

    Cependant, j'aimerais savoir si en cas que le site ait été supprimé, comment on peut afficher une page pour dire qu'il a été supprimé.

    J'avais pensé aux Rewrite url mais je ne sais pas trop comment cela fonctionne.

    Merci pour votre aide.

    Cordialement,

    KaNa.

  13. #13
    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
    Quand tu dis que le site a été supprimé tu veux dire que le VH a aussi été supprimé ou bien seuls les répertoires ont été supprimés et le bloc <VirtualHost> existe toujours ?

  14. #14
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Bin, je pense que les Virtualhost va être laissé au cas ou un site utilise le même nom de site, ca évitera de recréer un VirtualHost.

    Mais c'est vrais, maintenant que tu le dis, ca risque de faire très lourd comme fichier.
    Car là je vois en 6 mois j'ai eu un peu plus de 600 sites créés.

    Donc il faudra que je supprime les Virtualhosts inutilisés ( Si c'est possible d'ailleur )

    Enfin, dans tout les cas le dossier du site sera supprimé, après le VirtualHost ca dépends si c'est possible de supprimer un bloc VirtualHost via PHP.

  15. #15
    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
    Tu peux tout faire en PHP mais n'oublie pas qu'il faut redémarrer le serveur Apache à chaque création ou suppression de VH.

    Si le VH n'existe pas, l'internaute va arriver soit sur le site par défaut d'Apache (le DocumentRoot défini en dehors des blocs <VirtualHost>) soit sur le premier VH de la liste. Il faudrait que tu saches sur quel conf (la conf par défaut ou le premier VH) tu arrives quand tu demandes un VH qui n'existe pas. Ensuite, dans cette conf, il faut ajouter un bout de code comme celui-ci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    # Inutile de le répéter s'il est deja present
    RewriteEngine on
     
    RewriteCond %{HTTP_HOST} ^nom\.par\.defaut\.com\.de\.la\.conf\.com$
    RewriteRule .* http://www.site.com/siteinexitant.html [R=302,L]
    Le navigateur sera alors redirigé vers une page disant qu'il y a un problème avec le site demandé.

  16. #16
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Merci beaucoup,

    Par contre je n'ai pas trop compris cette ligne :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteCond %{HTTP_HOST} ^nom\.par\.defaut\.com\.de\.la\.conf\.com$

  17. #17
    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
    C'est pour s'assurer que le RewriteRule n'est exécuté que si on arrive sur le site par défaut avec un nom qui n'est pas celui du site par défaut, donc qu'on vient d'un VH qui n'existe pas. Mais du coup, j'ai oublié un ! devant le 2ème membre. C'est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    RewriteCond %{HTTP_HOST} !^nom\.par\.defaut\.com\.de\.la\.conf\.com$

  18. #18
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Il faudrait un vhost de ce genre alors si j'ai bien compris :
    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
    NameVirtualHost 127.0.0.1
     
    UseCanonicalName Off
     
     
    <Directory /var/www/domaine.tld>
    	Options Indexes FollowSymLinks MultiViews
    	AllowOverride All
    	Order allow,deny
    	allow from all
    </Directory>
     
    <Directory /var/www/domaine2.tld>
    	Options Indexes FollowSymLinks MultiViews
    	AllowOverride All
    	Order allow,deny
    	allow from all
    </Directory>
     
    <VirtualHost 127.0.0.1>
    ServerName domaine2.tld
    VirtualDocumentRoot /var/www/domaine2.tld/
     
    RewriteEngine on
     
    RewriteCond %{HTTP_HOST} !^domaine2.tld$
    RewriteCond %{HTTP_HOST} !^www.domaine2.tld$
    RewriteRule .* http://www.domaine.tld/siteinexitant.html [R=302,L]
     
    </VirtualHost>
     
    <VirtualHost 127.0.0.1>
    ServerName domaine.tld
    ServerAlias domaine.tld *.domaine.tld
    VirtualDocumentRoot /var/www/domaine.tld/%1
    </VirtualHost>
     
    <VirtualHost 127.0.0.1>
    ServerName site1.domaine2.tld
    VirtualDocumentRoot /var/www/domaine2.tld/site1/
    </VirtualHost>
     
    <VirtualHost 127.0.0.1>
    ServerName site2.domaine2.tld
    VirtualDocumentRoot /var/www/domaine2.tld/site2/
    </VirtualHost>
     
     
    <VirtualH ...

  19. #19
    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
    Non, je n'ai jamais dit qu'il fallait un VH spécifique, j'ai dit qu'il fallait que tu détermines la conf qui est utilisée par Apache lorsqu'on demande un VH qui n'existe pas (ou plus) et donc agir au niveau de cette conf.

  20. #20
    Membre du Club Avatar de kanaziwok
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    105
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2006
    Messages : 105
    Points : 52
    Points
    52
    Par défaut
    Pourtant j'ai testé en local, cette configuration et elle marche.
    Si je tape site3.domaine2.tld sans avoir créé le VirtualHost de site3.domaine2.tld alors je tombe sur le lien www.domaine.tld/siteinexistant.html .

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/08/2011, 18h32
  2. Réponses: 1
    Dernier message: 10/05/2010, 22h51
  3. Réponses: 1
    Dernier message: 23/01/2006, 07h25
  4. [Tomcat]Ajout d'un hôte virtuel sous tomcat
    Par ouss dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 26/12/2005, 18h03
  5. hote virtuel pour autre site web
    Par vedder dans le forum Apache
    Réponses: 8
    Dernier message: 27/07/2004, 14h25

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