DNS et sous-domaines

Nouveau WRInaute
Bonjour à tous,

J'ai un soucis quand je tente de configurer mon domaine de telle sorte que les sous-domaines soient "infinis" et redirigent tous vers le domaine principal pour ensuite les rediriger vers leur répertoire via le fichier /etc/apache2/sites-available/domain.tld.

Pour l'instant tous les sous-domaines redirigent bien vers le root du domaine mais quand je créé le répertoire correspondant et rajoute la section qui va bien dans le fichier apache, le sous domaine continue a rediriger uniquement vers le root du domaine et pas vers le répertoire correspondant sur le serveur...

Dans l'interface DNS du registrar j'ai mis ceci :
Code:
Record Type    Record Host     Record Answer    TTL
CNAME            *.domain.tld    domain.tld          300
A                     domain.tld      <ip.du.serveur>   300
Et le fichier /etc/apache2/sites-available/domain.tld contient :
Code:
<VirtualHost *:80>
    ServerAdmin postmaster@domain.tld
    ServerName  domain.tld
    ServerAlias *.domain.tld

    DocumentRoot /home/user/www/

    <Directory /home/user/www/>
        Order allow,deny
        allow from all
    </Directory>

</VirtualHost>

<VirtualHost *:80>
        ServerName sub1.domain.tld
        ServerAlias sub1.domain.tld
        DocumentRoot "/home/user/www/sub1/"
</VirtualHost>
<VirtualHost *:80>
        ServerName sub2.domain.tld
        ServerAlias sub2.domain.tld
        DocumentRoot "/home/user/www/sub2/"
</VirtualHost>

Merci d'avance pour votre aide et n'hésitez pas hein si tout ça n'est pas bien formulé, c'est tout nouveau pour moi et un tantinet compliqué piger :s
 
WRInaute impliqué
Salut,

Essayes de mettre un A dans ton DNS:
A *.domain.tld <ip.du.serveur>

Ensuite ta ServerAlias *.domain.tld dans apache, ça passera avant les autres règles :x
 
Nouveau WRInaute
Oui alors le soucis avec le fait de mettre un A *.domain.tld <ip.du.serveur> c'est que dans ce cas les sous-domaines redirigent vers le root du serveur /var/www et pas vers le root du domaine qui est /home/user/www.
Sinon je n'ai pas saisi ta dernière phrase, il faut modifier quelque chose à la ligne ServerAlias *.domain.tld ?
 
Nouveau WRInaute
Magnifique ! Ça fonctionne en inversant l'ordre des sections virtualhost, même si ça ne semble pas vraiment "propre".

Et pour la postérité, le contenu du fichier apache des fois que ça puisse servir à d'autres :
Code:
<VirtualHost *:80>
        ServerName sub1.domain.tld
        ServerAlias *.sub1.domain.tld
        DocumentRoot "/home/user/www/sub1/"
        <Directory /home/user/www/sub1/>
                Order allow,deny
                allow from all
                Options -Indexes
        </Directory>
</VirtualHost>

<VirtualHost *:80>
        ServerName sub2.domain.tld
        ServerAlias *.sub2.domain.tld
        DocumentRoot "/home/user/www/sub2/"
        <Directory /home/user/www/sub2/>
                Order allow,deny
                allow from all
                Options -Indexes
        </Directory>
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin postmaster@domain.tld
    ServerName  domain.tld
    ServerAlias *.domain.tld

    DocumentRoot /home/user/www/

    <Directory /home/user/www/>
        Order allow,deny
        allow from all
        Options -Indexes
    </Directory>

</VirtualHost>

Merci beaucoup !
 
WRInaute impliqué
hansi a dit:
Oui alors le soucis avec le fait de mettre un A *.domain.tld <ip.du.serveur> c'est que dans ce cas les sous-domaines redirigent vers le root du serveur /var/www et pas vers le root du domaine qui est /home/user/www.
Juste pour information, il n'y a aucun rapport entre les DNS et le "root" d'Apache...
Le DNS permet simplement de faire correspondre un nom et une adresse IP. Ensuite, un service (Apache ici) tourne sur cette adresse IP et fait ce qu'il veut des requêtes qu'il reçoit (la différenciation du site web se fait via l'en-tête "host" du protocole HTTP).
 
Discussions similaires
Haut