Reecriture de sous domaines dynamique avec variables

Discussion dans 'URL Rewriting et .htaccess' créé par rocca, 20 Novembre 2007.

  1. rocca
    rocca Nouveau WRInaute
    Inscrit:
    30 Mai 2007
    Messages:
    31
    J'aime reçus:
    0
    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:
    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
     
  2. lothar
    lothar WRInaute passionné
    Inscrit:
    12 Juillet 2003
    Messages:
    1 076
    J'aime reçus:
    0
    Chouette, plein de sous-domaines générés automatiquement.
     
  3. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    81
    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:
    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]
     
  4. rocca
    rocca Nouveau WRInaute
    Inscrit:
    30 Mai 2007
    Messages:
    31
    J'aime reçus:
    0
    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:
    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
     
  5. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    81
    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:
    RewriteCond %{REQUEST_URI} ^/$
    RewriteRule   ^(.*)   test.php?lacat=%1 [NC,L]
    
     
  6. rocca
    rocca Nouveau WRInaute
    Inscrit:
    30 Mai 2007
    Messages:
    31
    J'aime reçus:
    0
    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:
    
    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]
     
  7. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    81
    :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:
    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]
     
  8. rocca
    rocca Nouveau WRInaute
    Inscrit:
    30 Mai 2007
    Messages:
    31
    J'aime reçus:
    0
    ah ! tout de suite c'est mieux :p
    ca marche nikel ! merci Koogar pour le coup de main :wink:

    Julien
     
  9. screuscreu
    screuscreu WRInaute impliqué
    Inscrit:
    14 Janvier 2008
    Messages:
    687
    J'aime reçus:
    0
    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:
    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:
    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
     
  10. screuscreu
    screuscreu WRInaute impliqué
    Inscrit:
    14 Janvier 2008
    Messages:
    687
    J'aime reçus:
    0
    Code:
    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 ?
     
  11. KOogar
    KOogar WRInaute accro
    Inscrit:
    16 Novembre 2004
    Messages:
    4 643
    J'aime reçus:
    81
    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:
    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
     
Chargement...
Similar Threads - Reecriture domaines dynamique Forum Date
[resolu] reecriture de sous domaines URL Rewriting et .htaccess 15 Juin 2005
Réecriture d'URL et redirection pages AMP URL Rewriting et .htaccess 29 Mai 2021
WordPress réécriture d'URL domaine.TLD/COUNTRYCODE/ vers domaine.ccTLD URL Rewriting et .htaccess 9 Mai 2021
Comment faire une redirection des URL en + de la réécriture d'URL ? URL Rewriting et .htaccess 13 Septembre 2020
Réécriture d'articles, est-ce une bonne idée de couper ses articles? Rédaction web et référencement 25 Mai 2020
Réécriture et robots.txt Débuter en référencement 10 Octobre 2019
Réécriture HTTPS / WWW / redirect, etc ... URL Rewriting et .htaccess 10 Juin 2019
Réecriture simple qui ne fonctionne pas URL Rewriting et .htaccess 20 Février 2019
Faire une redirection 301 et une réécriture en même temps (.htaccess) URL Rewriting et .htaccess 16 Décembre 2018
Réécriture url et htaccess URL Rewriting et .htaccess 3 Octobre 2018
Réecriture url sur Shopify e-commerce 15 Juin 2017
Réécriture URL supprimer home/annugrbz/public_html URL Rewriting et .htaccess 24 Novembre 2016
Apache => Ngnix - Réécriture RewriteCond URL Rewriting et .htaccess 1 Février 2016
Réécriture d'url directory URL Rewriting et .htaccess 29 Janvier 2016
Réécriture lien URL Rewriting et .htaccess 24 Septembre 2015
Réécriture dynamique URL Rewriting et .htaccess 15 Septembre 2015
réécriture avec query string URL Rewriting et .htaccess 22 Août 2015
Modification d'une régle de réécriture avec redirection URL Rewriting et .htaccess 2 Juin 2015
Réécriture d'URL et référencement naturel Rédaction web et référencement 10 Avril 2015
Erreur 500 après réecriture URL URL Rewriting et .htaccess 30 Décembre 2014