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 :

Pointer un sous domaine sur un répertoire précis du domaine


Sujet :

Apache

  1. #1
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut Pointer un sous domaine sur un répertoire précis du domaine
    Bonjour à tous,

    Je vais tâcher d'être le plus rigoureux et le plus précis pour exposer un problème que je ne parviens pas à résoudre, malgré de nombreuses lectures sur les forums :

    Le serveur tourne avec Apache 2.0 Centos / PLesk 9.2

    Le sous-domaine que j'ai crée via l'interface PLesk ne fonctionne pas et c'est toujours la page défaut "Apache HTTPD test page" qui s'affiche lorsque je saisis http://mon-sous-domaine.mon-domaine.com
    Voici la procédure que j'ai suivie :

    1- Création du sous-domaine via l'interface Plesk9 : j'ai suivi la procédure, rien de très compliqué.
    Conséquences :

    Un dossier "mon-sous-domaine" s'est crée dans le dossier "subdomain" de l'espace principal

    Ce dossier contient "httpdocs" et autres dossiers, comme le domaine principal

    Au niveau de la section DNS de l'interface PLesk, je vois que 2 lignes ont été ajoutées :
    1 : *.mondomaine - A - IP serveur
    2 : mon-sous-domaine.mon-domaine - A - IP du serveur

    2 - Dans le dossier "conf" du domaine, j'ai crée un fichier "vhost.conf" qui contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
        DocumentRoot /var/www/vhosts/mon-domaine.com/httpdocs
        ServerAlias *.mon-domaine.com

    3- A la racine du domaine (dans le httpdocs), j'ai crée un fichier htaccess qui contient :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
        RewriteCond %{HTTP_HOST} !^www.mon-domaine.com$
        RewriteCond %{HTTP_HOST} ^(.+)\.mon-domaine\.com$
        RewriteRule ^(.+) %{HTTP_HOST}$1 [C]
        RewriteRule ^(.+)\.jlduzes\.net(.*) http://www.mon-domaine.com/$1/ [R=301,L]

    Ceci parce que j'ai lu dans ce forum qu'avec ces règles, "http://nimportequoi.mon-domaine.com" aller pointer sur
    http://www.mon-domaine.com/nimportequoi/
    Et c'est exactement ce que je veux ! mais cela ne fonctionne pas.

    Dans l'interface de certains hébergeurs (1 and 1 notamment), lorsque l'on crée un sous-domaine, il est très simple ensuite de déterminer vers quel dossier du domaine on souhaite qu'il pointe. C'est très transparent. Et ce n'est pas possible depuis l'interface Plesk9 !

    Et pour conclure, ce n'est pas parce que PLesk a généré un dossier "mon-sous-domaine" dans le dossier "subdomain" du domaine principal que je veuille absolument y faire pointer mon sous-domaine ! Je peux très bien choisir un dossier "toto" du domaine principal. Enfin je l'espère.

    Votre aide me sera précieuse et je vous en remercie d'avance.

  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
    Ton fichier vhost.conf ne contient que les deux lignes que tu donnes ? Passes-tu par une configuration d'hôtes virtuels (blocs <VirtualHost>) ?

  3. #3
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Bonjour,

    Non, je n'ai pas de blocs <VirtualHost> dans les vhosts.conf, que ce soit celui du domaine principal ou celui de subdomain.

    En dessous des lignes que j'ai écrites ici, j'ai :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    <Directory /var/www/vhosts/mon-domaine.com/httpdocs>
            AllowOverride All
            <IfModule sapi_apache2.c>
                    php_admin_flag engine on
                    php_admin_flag safe_mode off
                    php_admin_value open_basedir none
            </IfModule>
            <IfModule mod_php5.c>
                    php_admin_flag engine on
                    php_admin_flag safe_mode off
                    php_admin_value open_basedir none
            </IfModule>
    </Directory>
    Il faudrait passer par un VirtualHost ??

  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
    Pas nécessairement surtout au regard des RewriteRule que tu veux utiliser, mais comme tu as écrit des choses dans le fichier vhosts.conf qui contient logiquement (vu le nom) la configuration des hôtes virtuels, je me suis posé la question.

    Dans que fichier est défini le document root du site principal www.mon-domaine.com ? Je cherche à savoir comment ça se fait qu'en tapant toto.mon-domaine.com tu ne tombes pas sur le site www.mon-domaine.com (en excluant la redirection) : si tu as 2 sites différents qui s'affichent, j'imagine qu'il y a quand même des hôtes virtuels quelque part : peux-tu donner plus de détails ?

    Sinon, un moyen rapide a priori de résoudre le problème : mets le .htaccess que tu donnes dans ton premier message dans le répertoire qui contient le site par défaut d'Apache.

  5. #5
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Dans que fichier est défini le document root du site principal www.mon-domaine.com ? Je cherche à savoir comment ça se fait qu'en tapant toto.mon-domaine.com tu ne tombes pas sur le site www.mon-domaine.com (en excluant la redirection) : si tu as 2 sites différents qui s'affichent, j'imagine qu'il y a quand même des hôtes virtuels quelque part : peux-tu donner plus de détails ?
    Dans le vhost.conf du domaine principal, le root est :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DocumentRoot /var/www/vhosts/mon-domaine.com/httpdocs
    ServerAlias *.mon-domaine.com
    Sans celui du subdomain :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DocumentRoot /var/www/vhosts/mon-domaine.com/httpdocs/toto
    Parce que je voulais, justement, que nimporte-quoi.mon-domaine.com pointe sur le dossier toto de mon-domaine.com
    Mais ce n'est pas le cas : la page par défaut s'affiche à la place de l'index de toto.

    Voici l'arbo générale (dossiers importants):

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    conf // contient vhost.conf
    httpdocs // contient fichiers site principal
    subdomains
          nom-sous-domaine
          conf //vhost.conf
          httpdocs // fichiers du sous-domaine
    Pour le moment, j'ai viré le HTACCESS, ne sachant pas trop où le mettre.
    Qu'entends-tu par :

    mets le .htaccess que tu donnes dans ton premier message dans le répertoire qui contient le site par défaut d'Apache
    Où est-il, se répertoire ? c'est celui qui affiche la page défaut "apache" ?

  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
    Citation Envoyé par renaud26 Voir le message
    Où est-il, se répertoire ? c'est celui qui affiche la page défaut "apache" ?
    Oui

  7. #7
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Alors j'ai un peu de mal à comprendre...
    Ce dossier est extérieur au dossier /var/www/vhosts qui contient tous les sites du serveur.
    Si je mets un htaccess ici, comment va-t-il concerner un site en particulier ?
    Et si j'ai 50 sites avec chacun 10 sous-domaines, il faut que j'écrive ces 4 règles pour chaque domaine ?

  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
    Je ne comprends pas trop non plus. Peut-être faut-il que tu donnes (par MP si tu veux) toute la conf de ton serveur pour qu'on comprenne mieux. De ce que je comprends, parce que tu demandes toto.mon-domaine.com qui n'est pas un virtual host reconnu par le serveur Apache tu tombes sur la page d'accueil de base d'Apache. En revanche, www.mon-domaine.com est correctement reconnu. D'où que je me dis qu'en mettant le .htaccess de 4 lignes que tu donnes en bas de ton premier post dans le dossier de ce site Apache par défaut, tous les *.mon-domaine.com (à l'exception du www) tomberont sur le site par défaut Apache, donc le .htaccess, donc seront renvoyés comme il faut.

    Au passage, ajoute cette ligne tout en haut de ton .htaccess si elle n'y est pas déjà :

  9. #9
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    Pas de problème pour t'envoyer la conf de mon serveur en MP. Mais qu'est ce qui te serait utile au juste ?

    J'ai remarqué une chose :

    1- si je mets un fichier vhost.conf dans le dossier conf du subdomain avec
    un root vers le dossier du même nom (celui du sous-domaine) dans le domaine principal, la page par défaut qui s'affiche est celle qui se trouve dans :
    /var/www/vhosts/default/htdocs/index.html - c'est celle de 1 and 1 qui dit "domaine réservé".

    2- si je supprime le vhost.conf du subdomain, la page par défaut est celle d'Apache que tu peux voir ici : http://autorepondeur.jlduzes.net/
    Son emplacement sur le serveur est :
    /var/www/error/noindex.html

    Je précise que le dossier /var/www/vhosts/mon-domaine.com/subdomains/mon-sous-domaine/httpdocs contient bien un fichier index.html...
    Mais pas moyen de l'afficher !

  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
    En fait, ce que je ne comprends pas c'est cette mécanique autour du fichier vhost.conf : il y en a un par sous-domaine (toto et www) ?

    Et que se passe-t-il si tu copies le contenu du .htaccess (avec RewriteEngine on) dans le fichier vhost.conf du sous-domaine ?

  11. #11
    Membre averti Avatar de renaud26
    Homme Profil pro
    Webmaster
    Inscrit en
    Mars 2003
    Messages
    1 365
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Activité : Webmaster

    Informations forums :
    Inscription : Mars 2003
    Messages : 1 365
    Points : 436
    Points
    436
    Par défaut
    En fait, ce que je ne comprends pas c'est cette mécanique autour du fichier vhost.conf : il y en a un par sous-domaine (toto et www) ?
    Il y a bien un dossier "conf" où l'on peut mettre un vhost.conf dans www et dans subdomain, mais là j'ai fait comme tu me l'as dit : j'ai saisi le contenu du htaccess dans le vhost.conf du sous domaine (son nom réel est "autorepondeur") - puis j'ai redémarré le site.

    Note : le vhost.conf du domaine principal contient toujours :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DocumentRoot /var/www/vhosts/mon-domaine.net/httpdocs
    ServerAlias *.mon-domaine.net
    Résultat : si je tape http://toto.mon-domaine.net j'arrive sur
    http://www.mon-domaine.net/toto/httpdocs/ et ça n'existe pas.

    Si je tape http://autorepondeur.mon-domaine.net (vrai sous domaine déclaré) j'arrive sur la page défaut de Apache.

    C'est vraiment un truc de dingue !

  12. #12
    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 renaud26 Voir le message
    Résultat : si je tape http://toto.mon-domaine.net j'arrive sur
    http://www.mon-domaine.net/toto/httpdocs/ et ça n'existe pas.
    Essaie cette autre configuration plus simple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    RewriteEngine on
    RewriteCond %{HTTP_HOST} !^www.mon-domaine.com$
    RewriteCond %{HTTP_HOST} ^(.+)\.mon-domaine\.com$
    RewriteRule .* http://www.mon-domaine.com/%1/ [R=301,L]
    Citation Envoyé par renaud26 Voir le message
    Si je tape http://autorepondeur.mon-domaine.net (vrai sous domaine déclaré) j'arrive sur la page défaut de Apache.
    Vide le cache de ton navigateur et refais un essai : les redirections permanentes 301 sont cachées par les navigateurs.

Discussions similaires

  1. Réponses: 21
    Dernier message: 04/05/2015, 13h39
  2. Réponses: 2
    Dernier message: 18/03/2014, 21h55
  3. [Drupal] Drupal 7 en local avec wamp : comment faire pointer son nom de domaine sur le répertoire drupal
    Par arsene555 dans le forum EDI, CMS, Outils, Scripts et API
    Réponses: 4
    Dernier message: 02/03/2011, 13h06
  4. Simuler un sous domaine sur Apache ?
    Par renaud26 dans le forum Apache
    Réponses: 2
    Dernier message: 24/04/2006, 13h57
  5. [JFileChooser] Pointer un répertoire précis
    Par phibrunet dans le forum Agents de placement/Fenêtres
    Réponses: 6
    Dernier message: 06/03/2005, 18h51

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