URL Rewriting et sous-domaine virtuel
Cet article est actuellement publié sur le site.
Article publié le jeudi 23 novembre 2006 par Junior83.
Cet article est classé dans les catégories « Nom de domaine, PHP, Référencement »
Comment créer des sous-domaines virtuels :
EX : test.mondomaine.tld = www.mondomaine.tld/test/
Dans un premier temps vous allez devoir faire
une petite vérification voir
une modification dans les
ZONE DNS de votre domaine afin de pouvoir faire des sous domaines virtuels.
Vérifier la présence de cette Zone DNS, si elle n'existe pas il faut la créer sans ça les sous domaines virtuels ne fonctionneront pas.
Zone DNS * IN A IP-DU-SERVEUR Le “*” veut dire que toutes les requêtes *.mondomaine.tld (nimportequoi.mondomaine.tld) doit pointer vers IP-DU-SERVEUR Pour vérifier si la zone DNS est bien en place, tapez dans votre navigateur favoris l'adresse suivante test.votredomaine.tld, vous devez logiquement vous retrouvez sur l'index de
http://www.votredomaine.tld, si ce n'est pas le cas la zone DNS est mal voir pas déclaré.
Dans un deuxième temps, si jusque là vous n'avez pas rencontré de problèmes nous allons modifier le .htaccess pour que la notion de sous domaines virtuels trouve tout son sens.
Editez donc votre .htaccess.
Si vous souhaitez qu'un sous domaine virtuel en particulier pointe vers un répertoire de votre www, utilisez ce type de syntaxe pour votre fichier .htaccess .
RewriteEngine On RewriteCond %{HTTP_HOST} !^www.mondomaine.tld RewriteCond %{HTTP_HOST} ^test.mondomaine.tld RewriteRule ^$ /test/index.php RewriteRule ^([^.]+).html$ /test/index.php?page=$1 [L]
Dans le cas présent si le sous domaine demandé n'est pas www mais test nous atteindront la page index.php du répertoire test
Exemple : test.mondomaine.tld/index.html = http://www.mondomaine.tld/test/index.php?page=index
Si vous souhaitez que tous les sous domaines virtuels pointent vers un répertoire et soient passé en variable à un fichier php, utilisez cette syntaxe pour votre fichier .htaccess .
RewriteEngine On RewriteCond %{HTTP_HOST} !^www.mondomaine.tld RewriteCond %{HTTP_HOST} !^test.mondomaine.tld RewriteCond %{HTTP_HOST} ^([^.]+).mondomaine.tld RewriteRule ^$ /autre-test/index.php?sous_domaine=%1 RewriteRule ^([^.]+).html$ /autre-test/index.php?sous_domaine=%1&page=$1 [L]
Dans le cas présent si le sous domaine demandé n'est pas www ou test nous le passons en variable à index.php
Exemple : profils.mondomaine.tld/utilisateur.html = http://www.mondomaine.tld/autre-test/index.php?sous_domaine=profils&page=utilisateur
J'espère avoir été suffisamment clair.
Bon ReWriting ! :)