Url rewriting sur un sous-domaine

hich

Nouveau WRInaute
Bonjour,

Je voudrai appliquer une réécriture d'url sur les sous-domaines d'un site.
Je m'explique sur le résultat que je souhaite avoir :

http://blabla.domaine.com doit pointer sur http://www.domaine.com/test.php?sousdomaine=blabla
http://blabla.domaine.com/azerty.html doit pointer sur http://www.domaine.com/test.php?sousdomaine=blabla&page=azerty
http://blabla.domaine.com/abc/azerty.html doit pointer sur http://www.domaine.com/test.php?sousdomaine=blabla&page=abc/azerty
http://blabla.domaine.com/abc/ doit pointer sur http://www.domaine.com/test.php?sousdomaine=blabla&page=abc/
http://blabla.domaine.com/abc doit pointer sur http://www.domaine.com/test.php?sousdomaine=blabla&page=abc

J'ai ce code dans mon .htaccess

Code:
RewriteCond %{HTTP_HOST} !^www.domaine.com
RewriteCond %{HTTP_HOST} ^(.*)\.domaine.com
RewriteRule ^([a-zA-Z0-9\-\_\.\/]*).html$ test.php?sousdomaine=%1&page=$1 [L]

RewriteCond %{HTTP_HOST} !^www.domaine.com
RewriteCond %{HTTP_HOST} ^([^.]+).domaine.com
RewriteRule ^$ test.php?sousdomaine=%1


Résultats :
http://blabla.domaine.com pointe sur http://www.domaine.com/test.php?sousdomaine=blabla
http://blabla.domaine.com/azerty.html pointe sur http://www.domaine.com/test.php?sousdomaine=blabla&page=azerty
http://blabla.domaine.com/abc/azerty.html pointe sur http://www.domaine.com/test.php?sousdomaine=blabla&page=abc/azerty
http://blabla.domaine.com/abc/ renvoi sur une erreur 404
http://blabla.domaine.com/abc renvoi sur une erreur 404


Quelqu'un peut corriger mon code svp,
Merci beaucoup
 

jcaron

WRInaute accro
Ta première rewriterule impose que le chemin se finisse par .html, et évidemment le deuxième ne prend que la racine.

Remplace .html par (\.html)?, ça devrait le faire.

Jacques.
 

hich

Nouveau WRInaute
Merci jcaron pour ta réponse,
A présent j'ai des redirections correctes mais en éditant les variables $_GET dans le fichier test.php, j'ai toujours le résultat suivant pour une URL de type "http://blabla.domaine.com/azerty/page.html" ou bien "http://blabla.domaine.com/azerty/" ou encore "http://blabla.domaine.com/":

Code:
array(2) { ["sousdomaine"]=>  string(3) "blabla" ["page"]=>  string(8) "test.php" }

Je peux exploiter les variables serveur ($_SERVER) pour détecter l'url demandée et terminer la génération de page, mais ça tombe mal puisque ça fait pas partie des règles de l'art de notre métier :roll:
Tu peux vérifier d'avantage stp?
Merci encore une fois :)
 

jcaron

WRInaute accro
C'est le ['page'] => "test.php" qui te pose problème, je suppose? Tu nous remets ton .htaccess tel qu'il est maintenant? Parce que tel qu'il était exposé plus haut, il n'y a pas de raison que ce soit comme ça...

Jacques.
 

hich

Nouveau WRInaute
Jacques,
Voici mon htaccess :

Code:
RewriteEngine on
RewriteCond %{HTTP_HOST} !^www.domaine.com
RewriteCond %{HTTP_HOST} ^(.*)\.domaine.com
RewriteRule ^([a-zA-Z0-9\-\_\.\/]*)(\.html)? test.php?sous_domaine=%1&page=$1 [L]

c'est bizarre, pourquoi mon le $1 est interprété par test.php ici?

Merci beaucoup Jacques.
 

Discussions similaires

Haut