Sous domaines - Apache 2, Bind9, Htaccess, Url rewrite

Nouveau WRInaute
Bonjour,

J'ai installé récemment une distribution linux Ubuntu 5.10 et je me trouve confronté à quelques problèmes de configuration.

Bind est configuré correctement pour gèrer différents domaines sur une même machine.
ex: www.domaine1.net www.domaine2.name ...

=> Bind9, Apache 2 et Php/Mysql fonctionnent tous.

Maintenant je voudrais au choix :
1°) faire pointer un repertoire (ex: /var/www) vers www.domaine1.net et un autre repertoire (ex:/home/profil/html) vers profil.domaine1.net de telle sorte que:
-> si je saisi www.domaine1.net j'aboutis sur le répertoire /var/www
-> si je tape profil.domaine.net j'aboutis sur le répertoire /home/profil/html

2°) créer des sous domaine automatiquement à partir des sous répertoire. C'est à dire:
-> si je tape domaine1.net j'aboutis sur un répertoire ex: /var/www
-> si je tape julien.domaine1.net j'aboutis sur /var/www/julien

Sur la page suivante : http://forum.sivit.fr/viewtopic.php?id=5878

Ils indiquent qu'il est possible d'utiliser l'URL rewriting en créant un virtualhost comme suit :

<VirtualHost domaine.tld>
# Vous devez déjà avoir ces deux lignes, je suppose :
ServerName http://www.domaine.com
DocumentRoot /home/web/domaine

# J'ai testé, ça marche sans. Mais ça me plait, alors :
ServerAlias domaine.tld *.domaine.tld

# On démarre le moteur de réécriture...
RewriteEngine on

# Et là, on dit que si le nom de domaine contient un sous-domaine
# (différent de 'www' et précédé de 'www.' ou pas) :
RewriteCond %{HTTP_HOST} ^(www.)?([^.]+).domaine.tld

# Et si ce sous-domaine correspond à un dossier du DocumentRoot :
RewriteCond %{DOCUMENT_ROOT}/%2 -d

# alors on fait pointer vers ce dossier :
RewriteRule (.*) /%2 [L]

# sinon on tombe par défaut sur la racine
# du DocumentRoot
</VirtualHost>

Si des gens on essayé je serais ravi du retours d'expérience.

Merci d'avance.
 
WRInaute accro
Hum, perso je le sens moyen la gestion des sous-domaines par UR, mais bon, je n'ai pas spécialement d'arguments "contre", à moins que tu veuilles faire un truc vraiment spécifique, pourquoi ne pas utiliser un vhost/sousdomaine ?
 
WRInaute occasionnel
Une petite note en passant, ceci :
Code:
 # alors on fait pointer vers ce dossier :
RewriteRule (.*) /%2 [L]

serait probablement mieux ainsi :
Code:
 # alors on fait pointer vers ce dossier :
RewriteRule (.*) /%2/$1 [L]

Sinon tes URLs de sous-domaine ne pourrait jamais traiter autre chose que la racine du site.
 
Nouveau WRInaute
Bonjour,

En ce qui concerne la gestion des sous domaines par des virtual hosts, je conviens que se serait la solution la plus élégante mais je n'ai pas réussi.

Lorsque je crée un vhost du syle extranet.mondomaine.com et un vhost www.mondomaine.com même si le directory est différent j'arrive sur la même page!

Je sais pas si ça viens de Apache ou c'est moi qui sais pas faire.

Pourtant j'y arrive si le domaine est différent.

Toute idée détaillée est la bien venue.

Précision je cherche pas à
faire pointer *.mondomaine.com vers www.mondomaine.com
mais
à faire pointer :
intranet.mondomaine.com -> /var/www/intranet
extranet.mondomaine.com -> /var/www/extranet
www.mondomaine.com -> /var/www
*.mondomaine.com -> /var/www
 
WRInaute accro
Eu bizarre effectivement, à priori il n'y a aucune raison que ça marche avec les domaines et pas les sous-domaines.

Je ne suis pas spécialiste d'Apache, mais c/c ton fichier de conf, peut être qu'un spécialiste qui passe par là pourra t'aider :D (enfin moi je pense que c'est mieux de régler ler problème des vhosts plutôt que de bidouiller un truc avec l'UR).
 
Nouveau WRInaute
Personnellement cette démarche (si ca focntionne) ne me semble pas idiote dans la mesure où cela permet de fournir une réponse automatisée.

C'est à dire que dès qu'un nouveau répertoire est créer ce dernier peut être utilisé comme un sous domaine.

A ce compte cela me conviens.

Je mets en production ce soir je vous tiens au courant.
 
WRInaute accro
Oui, c'est clair que c'est pratique, mais moi j'aime pas :p.

Niveau organisation, performances, risque de duplicate, etc...

Enfin j'attend ton retour quand même ^^.
 
Nouveau WRInaute
visiblement j'avance un petit peu mais c'est pas encore ça.

J'ai créer la structure suivante:
/var/www/mondomaine/
-> index.php

/var/www/mondomaine/extranet/
-> index.php

/var/www/mondomaine/intranet/
-> index.php

NB: Tous les fichiers et repertoires ont les même droits
NB2: J'ai ajouté sur bind le *.mondomaine.net -> ip de ma machine

Donc logiquement quand je tape extranet.mondomaine.net
1°) Bind répond cela correspond à IP (vérifié par nslookup)
2°) Apache recoit extranet.mondomaine.net et renvoi vers le vhost
3°) Le mod Rewrite traite.

Sauf que dans les faits www.mondomaine.net abouti bien sur /var/www/mondomaine/index.php

mais
extranet.mondomaine.net et intranet.mondomaine.net tombent sur rien.

NB3: Le rewrite fonctionne car trucdefou.mondomaine.net retombe bien sur /var/www/mondomaine/index.php.

Des idées ?

Je planche sur une question de compte ou de droits mais je suis pas convaincu.
 
Nouveau WRInaute
Finalement ça marche.

J'ai modifier le named.conf pour accepter http://mondomaine.net

J'ai redémarré bind et apache.

Et voilà ça MARCHE!

Bon au final, il m'aura fallut environ 20h pour :
- installer une ubuntu,
- comprendre comment ca marche,
- installer tous les packages qui vont bien,
- creer mes sites virtuels
- configurer mon DNS,
- créer des expressions régulières
et faire que tout fonctionne nickel.

Comme quoi l'entraide c'est ce qui permet d'avancer.

Je publierai toute une série de guide de conf sur mon site http://www.carfancy.net (pour le moment y'a rien du tout!)

Merci à tous et bonne nuit.

Remerciement particuliers à Thierry et Benjamin.

Et un peu de pub pour ma boite http://www.mgi.fr -> SSII à taille humaine avec un bon niveau d'expertise.
 
Nouveau WRInaute
Bonjour à tous,

Je suis à la recherche de la configuration pour réaliser la meme tache.

Pour le moment j'ai configurer mon serveur apache avec deux domaines :
http://www.domaine.tld qui pointe sur /var/www/
http://www.domaine2.tld qui pointe sur /var/www/host/

Mais je veux que chaque sous domaine de domaine2.tld pointe automatiquement sur les répertoires de /var/www/host/
par exemple, si je tape http://site1.domaine2.tld cela pointe sur /var/www/host/site1/ tout concervant l'adresse site1.domaine2.tld.

EDIT /: Le ping sur ce domaine ne fonctionne pas de plus : ping: unknown host site1.domaine2.tld


J'ai cherché un peu partout sur internet, sans trouvé réellement ce que je cherchais.

Merci pour votre aide.
 
Nouveau WRInaute
Bonjour,

Dans le même genre...

Je voudrais savoir comment rediriger automatiquement mondomaine.tld vers www.mondomaine.tld. de façon simple

J'ai actuellement créé 2 VHOSTs sous apache2.
un pour www.mondomaine.tld qui pointe sur le dossier html racine du site
un pour mondomaine.tld qui pointe sur un dossier html/redirect qui contient un .htaccess

ce .htaccess du dossier redirect me redirige vers www.mondomaine.tld, voir code:
Options +FollowSymlinks
RewriteEngine on
RewriteRule .* http://www.mondomaine.tld [R=301,L]

cependant je pense qu'il y a moyen de faire avec un seul VHOST avec le .htaccess principal (celui du dossier html) et une règle du genre:

Options +FollowSymlinks
RewriteEngine on
RewriteCond %{HTTP_HOST} mondomaine.tld
RewriteRule (.*) http://www.mondomaine.tld [R=301,L]

J'utilise joomla avec l'url rewritting et donc il y a tout un tas d'autres règles après et il ne faut pas qu'elles soient perturbées

J'ai d'autre sous domaines comme ftp. ou pop3. mais je voudrais que quand un internaute tape http://mondomaine.tld, il soit redirigé vers www.mondomaine.tld.
Je ne peux donc pas utiliser de wildcard DNS du genre *.mondomaine.tld (enfin je crois)
Dans l'idéal s'il tape http://mondomaine.tld/contact.html il sera redirigé vers http://www.mondomaine.tld/contact.html (mais bon, c'est vraiment dans l'idéal, à l'heure actuelle tout est redirigé vers le www.mondomaine.tld, on peut voir ca dans un second temps car ce n'est pas vraiment important)

Vous pouvez taper http://gombert-tonneins.fr/ pour voir le résultat attendu

Merci d'avance pour votre aide
 
Discussions similaires
Haut