FAQ Web1 Packs

Créer des sous-domaines

Les sous-domaines sont gratuits et illimités. Par defaut toto.votre-domaine.com pointe sur www.votre-domaine.com. Vous pouvez personnaliser ce comportement à l'aide d'un fichier .htaccess.

Les sous-domaines sont créés par défaut sur nos serveurs DNS. Tous les sous domaines pointent à la racine de votre site. A vous ensuite d'utiliser le mod_rewrite d'apache pour rediriger votre sous domaine là où vous le souhaitez.

Voici un exemple pratique pour illustrer la démarche :

Le .htaccess lui-meme :

RewriteEngine on

# redirection des sous-domaines
RewriteCond %{REQUEST_URI} !^/sdoms
RewriteCond %{HTTP_HOST} ^([^.]*)\.?([^.]+).([^.]+)$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^(.*)$ /sdoms/%1/$1

# fix trailing slash
RewriteCond %{REQUEST_FILENAME} -d
RewriteRule ^(.+[^/])$ $1/ [L]

Pour donner quelques précisions, ce .htaccess redirigera automatiquement tout sous-domaine de la forme toto.domaine.com et ne commencant pas par “www” vers le sous-repertoire /sdoms/toto/ , et bien sur en conservant toto.domaine.com dans la barre d'adresse.
(Le sous-dossier /sdoms est surtout là avec la condition correspondante pour eviter des risques de redirections recursives.)
La dernière règle devrait eviter des problèmes de slash final

Edit : le “trailing slash” comme défini précédement pose quelques problèmes pour l'ouverture de sous-dossiers en appelant une url du type http://test.votre-domaine.com/toto (ou toto est un répertoire) ; voici une modification (soumise par renaud), qui semble règler ce problème :

##############################
# Non slash ended folder management trick
RewriteCond %{REQUEST_URI} !^/satellites
#seems to be a dir request without slash
RewriteCond %{REQUEST_URI} (/[^.]+)[^/]$
RewriteRule ^(.*)$ http://%{HTTP_HOST}%{REQUEST_URI}/ [R=301,L]
##############################

Résultat :

Le site lui-meme reste tel quel : http://www.lordi-depanneur.com/

Premier sous-domaine de test : http://test.lordi-depanneur.com/
(on tombe donc sur la page index.html du répertoire /sdoms/test/)

Test avec un autre sous-domaine : http://test2.lordi-depanneur.com/
(on tombe donc sur la page index.html du répertoire /sdoms/test2/)

Test un peu plus complexe, avec un sous-repertoire dans le sous-domaine et une page autre que index.html :
http://test2.lordi-depanneur.com/rep/test3.html
(on tombe bien sur la page /sdoms/test2/rep/test3.html)

Et voici un autre exemple plus court (soumis par un client ;))

RewriteEngine on
# redirection des sous-domaines
RewriteCond %{REQUEST_URI} !^/sdoms
RewriteCond %{HTTP_HOST} ^([^.]*)\.?[^.]+\.[^.]+$ [NC]
RewriteCond %1 !^www$ [NC]
RewriteRule ^(.*)$ /sdoms/%1/$1

Documentation Apache sur le mod_rewrite : http://httpd.apache.org/docs/1.3/misc/rewriteguide.html

Vous pouvez aussi changer d'offre en court d'abonnement sans problème.

Héberger plusieurs domaines

Ajout : Pour faire pointer deux domaines différents sur le même hébergement Web1 avec un domaine pointant dans un sous-répertoire :

Essayez ca pour la configuration hypothétique suivante:

  • domaine-principal.com → /
  • domaine-secondaire.com → /repertoire-secondaire/

Code:

RewriteEngine on
RewriteCond %{HTTP_HOST} www\.domaine-secondaire\.com
RewriteCond %{REQUEST_URI} !^/repertoire-secondaire
RewriteCond %{HTTP_HOST} ^([^.]*)\.?([^.]+).([^.]+)$ [NC]
RewriteCond %{HTTP_HOST} !^domaine-principal\.com$
RewriteRule ^(.*)$ /repertoire-secondaire/$1

Cas d'utilisation d'un domaine avec plusieurs TLD:

  • domaine-principal.com → /
  • domaine-secondaire.com.tw → /repertoire-secondaire/

Code:

RewriteEngine on
RewriteCond %{HTTP_HOST} www\.domaine-secondaire\.com\.tw
RewriteCond %{REQUEST_URI} !^/repertoire-secondaire
RewriteCond %{HTTP_HOST} ^([^.]*)\.?([^.]+)(\.[^.]+)+$ [NC]
RewriteCond %{HTTP_HOST} !^domaine-principal\.com$
RewriteRule ^(.*)$ /repertoire-secondaire/$1

Service Technique Web1

 
web1/packs/sous-domaines.txt · Dernière modification: 2007/10/04 15:17 (édition externe)
 
Recent changes RSS feed Creative Commons License Donate Powered by PHP Valid XHTML 1.0 Valid CSS Driven by DokuWiki