Reecriture de sous domaines dynamique avec variables

Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics

rocca
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 35
Inscription: 30 Mai 2007

Reecriture de sous domaines dynamique avec variables

Message le Mar Nov 20, 2007 12:53

La gestion des sous domaines dynamiques à été activé sur mon serveur dédié OVh (modification : etc/named.conf et usr/local/apache/conf/httpd.conf ).
Je chercher a effectuer des reecriture pour des sous domaines dynamques ( ex : categorie-jouet.monsite.com qui appel la page cat-detail.php?lacat=jouet ).

J'ai deja trouvé une première ébauche qui me permet de faire ca :

categorie-jouet.monsite.com -> monsite.com/test.php?lacat=jouet

avec ceci :

Code: Tout sélectionner
RewriteCond   %{HTTP_HOST}   !^www\.monsite\.com$ [NC]
RewriteCond   %{HTTP_HOST}    ^categorie-([a-z0-9_-]+)\.monsite\.com$ [NC]
RewriteRule   ^(.*)                     detail.php?lacat=%1 [NC,L]



Par contre est il possible a votre avis d'éffectuer cette reecriture avec deux ou plusieurs variables ?
car j'aimerais également faire une reecriture d'url de ce type en plus de la première présentée ci dessus :

exemple :

categorie-jouet.monsite.com/page-19.html -> monsite.com/test.php?lacat=jouet&lapage=19



Merci par avance.

Julien


lothar
WRInaute passionné
WRInaute passionné
 
Messages: 1531
Inscription: 12 Juil 2003

Message le Mar Nov 20, 2007 13:31

Chouette, plein de sous-domaines générés automatiquement.


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Mar Nov 20, 2007 14:28

Je ne vois pas pourquoi tu parles de sous domaines dynamiques... tu les a creer manuellement si je ne me trompe pas?

Pour la reecriture, il te faut prendre l'ensemble de la chaine et capturer le contenu de la variable "lapage"

Code: Tout sélectionner
RewriteCond   %{HTTP_HOST}   !^www\.monsite\.com$ [NC]
RewriteCond   %{HTTP_HOST}    ^categorie-([a-z0-9_\-]+)\.monsite\.com$ [NC]
RewriteRule   page-([0-9]+)\.html  test.php?lacat=%1&lapage=$1 [QSA,NC,L]

rocca
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 35
Inscription: 30 Mai 2007

Message le Mar Nov 20, 2007 14:52

Super KOogar ca marche !
Par contre j'arrive bien a recupéré les deux variables mais si j 'en ai besoin juste d'une
cela ne fonctionne plus.

Je m'explique pour la première page j'ai pas besoin de recupéré la variable page donc
je veux faire :
categorie-jouet.monsite.com -> test.php?lacat=jouet
et si je declare la variable page dans l'url :
categorie-jouet.monsite.com/page-4.html -> test.php?lacat=jouet&lapage=4

J'ai essayé de déclarer deux fois les conditions :

Code: Tout sélectionner
RewriteCond   %{HTTP_HOST}   !^www\.monsite\.com$ [NC]
RewriteCond   %{HTTP_HOST}    ^categorie-([a-z0-9_\-]+)\.monsite\.com$ [NC]
RewriteRule   page-([0-9]+)\.html  test.php?lacat=%1&lapage=$1 [QSA,NC,L]

RewriteCond   %{HTTP_HOST}   !^www\.monsite\.com$ [NC]
RewriteCond   %{HTTP_HOST}    ^categorie-([a-z0-9_\-]+)\.monsite\.com$ [NC]
RewriteRule   ^(.*)           test.php?lacat=%1 [NC,L]


Masi cela ne fonctionne pas, a chaque fois il zappr une des deux variables,
est il possible de déclarer des conditions différentes en fonction de si on
utlise la variable page ou pas ?

Merci :roll:
Julien


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Mer Nov 21, 2007 8:40

repasse le dernier block en premier et test l'uri. Elle doit etre vide.
^/$ : Ne contient que le caratere /
au cas ou ton serveur ne renvoi pas le caractere /, test aussi cette syntaxe :
^$ : Ne contient aucun caractere

Code: Tout sélectionner
RewriteCond %{REQUEST_URI} ^/$
RewriteRule   ^(.*)   test.php?lacat=%1 [NC,L]

rocca
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 35
Inscription: 30 Mai 2007

Message le Mer Nov 21, 2007 13:19

Merci Koogar,

Donc il faudrait faire ceci, pour obtenir les deux cas que j'ai cité précédémment , car en faisant ceci j'obtiens une page blanche sur mon serveur ? :

Code: Tout sélectionner

RewriteCond %{REQUEST_URI} ^/$
RewriteRule   ^(.*)   test.php?lacat=%1 [NC,L]

RewriteCond   %{HTTP_HOST}   !^www\.monsite\.com$ [NC]
RewriteCond   %{HTTP_HOST}    ^categorie-([a-z0-9_\-]+)\.monsite\.com$ [NC]
RewriteRule   page-([0-9]+)\.html  test.php?lacat=%1&lapage=$1 [QSA,NC,L]


Merci Julien[/code]


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Message le Mer Nov 21, 2007 13:22

:D ..pour la page blanche

Si tu enleves les autres condtions cela ne va pas marcher, il faut les garder et tester si l'uri est vide ou non.

Code: Tout sélectionner
RewriteCond   %{HTTP_HOST}   !^www\.monsite\.com$ [NC]
RewriteCond   %{REQUEST_URI} ^/$
RewriteCond   %{HTTP_HOST}    ^categorie-([a-z0-9_\-]+)\.monsite\.com$ [NC]
RewriteRule   ^(.*)           test.php?lacat=%1 [NC,L]


RewriteCond   %{HTTP_HOST}   !^www\.monsite\.com$ [NC]
RewriteCond   %{HTTP_HOST}    ^categorie-([a-z0-9_\-]+)\.monsite\.com$ [NC]
RewriteRule   page-([0-9]+)\.html  test.php?lacat=%1&lapage=$1 [QSA,NC,L]

rocca
Nouveau WRInaute
Nouveau WRInaute
 
Messages: 35
Inscription: 30 Mai 2007

Message le Mer Nov 21, 2007 13:41

ah ! tout de suite c'est mieux :P
ca marche nikel ! merci Koogar pour le coup de main :wink:

Julien


screuscreu
WRInaute impliqué
WRInaute impliqué
 
Messages: 968
Inscription: 14 Jan 2008

Re: Reecriture de sous domaines dynamique avec variables

Message le Mer Fév 11, 2009 19:19

Oui je sais c'est vieux comme topic mais j'ai un problème très très proche :
J'ai les mêmes besoins (ou presque que l'auteur de ce message ... mais je parle encore moins le .haccess que le Russe)
Code: Tout sélectionner
RewriteCond   %{HTTP_HOST}   !^www\.example\.com$ [NC]
RewriteCond   %{REQUEST_URI} ^/$
RewriteCond   %{HTTP_HOST}    ^([a-z0-9_\-]+)\.example\.com$ [NC]
RewriteRule   ^(.*)           %1 [NC,L]

avec ça j'ai bien test.example.com qui pointe sur example.com/test : nickel

Mais avec ça
Code: Tout sélectionner
RewriteCond   %{HTTP_HOST}   !^www\.example\.com$ [NC]
RewriteCond   %{HTTP_HOST}    ^([a-z0-9_\-]+)\.example\.com$ [NC]
RewriteRule  ([a-z0-9_\-]+)      %1/$1 [QSA,NC,L]


je n'arrive pas à faire pointer
test.example.com/news/coucou (remarquez que peux ne pas avoir d'extension ni de nom de fichier)
sur example.com/test/news/coucou

J'avoue que je suis un peu perdu, et que j'ai fois en WRI ;)

Merci d'avance


screuscreu
WRInaute impliqué
WRInaute impliqué
 
Messages: 968
Inscription: 14 Jan 2008

Re: Reecriture de sous domaines dynamique avec variables

Message le Mer Fév 11, 2009 20:01

Code: Tout sélectionner
RewriteEngine On

RewriteCond   %{HTTP_HOST}   !^www\.example\.com$ [NC]
RewriteCond   %{REQUEST_URI} ^/$
RewriteCond   %{HTTP_HOST}    ^([a-z0-9_\-]+)\. example\.com$ [NC]
RewriteRule   ^(.*)           %1 [NC,L]

RewriteCond   %{HTTP_HOST}   !^www\. example\.com$ [NC]
RewriteCond   %{HTTP_HOST}    ^([a-z0-9_\-]+)\. example\.com$ [NC]
RewriteRule   (.*)    %1/$1 [QSA,NC,L]


D'après ce que j'ai pu lire cela devrait marcher ... mais j'ai une "Internal Server Error"...
Une piste ?


KOogar
WRInaute accro
WRInaute accro
 
Messages: 3974
Inscription: 16 Nov 2004

Re: Reecriture de sous domaines dynamique avec variables

Message le Lun Fév 16, 2009 7:28

screuscreu a écrit:D'après ce que j'ai pu lire cela devrait marcher ... mais j'ai une "Internal Server Error"...
Une piste ?


tu as raison de dire qu'en théorie ca doit fonctionner. le QSA ne sert a rien donc enleve le, et re essaye en forcant la redirection avec le flag [R]

Code: Tout sélectionner
RewriteCond   %{HTTP_HOST}    ^([a-z0-9_-]+)\.example\.com$ [NC]
RewriteRule  ^(.*)$   http://www.example.com/%1/$1 [R,L]


quand le tiret (-) est placé a la fin de la classe, il redevient naturellement un simple caractere
[a-z0-9_-] est valide, le tiret sera pris en compte


Si vous avez aimé cette discussion, partagez-la sur vos réseaux sociaux préférés :

Formation recommandée sur ce thème :

Formation URL Rewriting et sites dynamiques : apprenez comment mettre en place la réécriture d'URL, comment optimiser vos URL et profiter de vos pages dynamiques pour booster votre référencement. Formation animée par Olivier Duffez et Fabien Facériès, experts en référencement naturel.

Tous les détails sur le site Ranking Metrics : programme, prix, dates et lieux, inscription en ligne.

Lectures recommandées sur ce thème :



Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités