rewriting de sous dossiers besoin d'aide

Discussion dans 'URL Rewriting et .htaccess' créé par mims1664, 21 Mars 2012.

  1. mims1664
    mims1664 WRInaute discret
    Inscrit:
    25 Janvier 2007
    Messages:
    108
    J'aime reçus:
    0
    Bonjour

    j'ai besoin d'aide pour la réécriture d'url de mon site

    dans mon cas je dois passer 1, 2, 3, 4, 5 variables.

    Première question, est ce que je dois construire les règles pour chaque cas ?

    par exemple
    cas N° 1, une variable, suivie potentiellement d'un chiffre :

    URL :
    category/toto/
    category/toto/1

    REGLE :
    RewriteRule ^category1/(.+)/$ listecat.php?rew=$1 [L]
    RewriteRule ^category1/(.+)/([0-9]+)$ listecat.php?rew=$1 [L]

    Cas N°2 : Une sous categorie, (y'a une variante)

    URL :
    category/toto/titi (pas de /)
    category/toto/titi/2

    REGLE :

    RewriteRule ^category1/(.+)/(.+)$ listecat.php?rew=$1&rew2=$2 [L]
    RewriteRule ^category1/(.+)/(.+)/([0-9]+)$ listecat.php?rew=$1&rew2=$2 &p=$3 [L]

    Dans cette règle lorsque j'ai l'url :
    category/toto/titi/2
    je rencontre le problème suivant : la variable $_GET[rew] contient "toto/titi", au lien de "toto" pour "$_GET[rew]" et "titi" pour "$_GET[rew2].

    Ensuite je descends dans le même principe de 2 niveau en construisant la réécriture de la même facon, ce qui donne pour le 4 eme niveau.


    URL :
    category/toto/titi/niveau3/niveau4 (pas de /)
    category/toto/titi/niveau3/niveau4/2

    REGLE :

    RewriteRule ^category1/(.+)/(.+)/(.+)/(.+)$ listecat.php?rew=$1&rew2=$2&rew3=$3&rew4=$4 [L]
    RewriteRule ^category1/(.+)/(.+)/(.+)/(.+)/([0-9]+)$ listecat.php?rew=$1&rew2=$2&rew3=$3&rew4=$4&p=$3 [L]

    et idem ca ne fonctionne pas, les variables se concatènes dans la première.

    Vous avez une idée ?
    N'y a t il pas plus simple ?

    Merci pour tout !
     
  2. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 417
    J'aime reçus:
    0
    en fait, tes règles doivent être écrites en sens inverse : les plus larges doivent se retrouver plus bas.
    Sinon, remplace (.+) par ([^/+)
     
  3. mims1664
    mims1664 WRInaute discret
    Inscrit:
    25 Janvier 2007
    Messages:
    108
    J'aime reçus:
    0
    Bonsoir Leonick

    tu as raison c'est trop vague ! j'ai donc restreins la regle mais je n'arrive pas à récupérer la 3 eme valeur :
    Code:
    RewriteRule ^category1/$  listecat.php [L]
    RewriteRule ^category1/([a-zA-Z0-9\-]+)/$  listecat.php?rew=$1 [L]
    RewriteRule ^category1/([a-zA-Z0-9\-]+)/([0-9]+)$  listecat.php?rew=$1&p=$2 [L]
    RewriteRule ^category1/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)  listecat.php?rew=$1&rew2=$2 [L]
    RewriteRule ^category1/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/$  listecat?rew=$1&rew2=$2 [L]
    RewriteRule ^category1/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([0-9]+)$  listecat.php?rew=$1&rew2=$2&p=$3 [L]
    RewriteRule ^category1/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)$  listecat.php?rew=$1&rew2=$2&rew3=$3 [L]
    
    en effet la 3 eme variable peut etre $P ou $rew3
    dans tous les cas si je desactive l'une des deux dernieres je n'arrive pas à afficher la règle ...

    une idée ?

    Merci
     
  4. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 417
    J'aime reçus:
    0
    essaie déjà règle par règle, en commentant les autres règles.
    Histoire de valider chacune.
    Ensuite, tu verras le problème qui peut se poser avec plusieurs règles en même temps
     
  5. mims1664
    mims1664 WRInaute discret
    Inscrit:
    25 Janvier 2007
    Messages:
    108
    J'aime reçus:
    0
    Bonjour Leonick

    en effectuant le test que tu m'as proposé ce qui ressort c'est ces deux règles :

    RewriteRule ^category1/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+) listecat.php?rew=$1&rew2=$2 [L]
    RewriteRule ^category1/([a-zA-Z0-9\-]+)/([a-zA-Z0-9\-]+)/([0-9]+)$ listecat.php?rew=$1&rew2=$2&p=$3 [L]

    La première lorsqu'elle est activée ne permet pas la récupération de la variable $_get[p]

    ce n'est pas un comportement normal non ?
     
  6. Leonick
    Leonick WRInaute accro
    Inscrit:
    8 Août 2004
    Messages:
    19 417
    J'aime reçus:
    0
    rajoute un $ à la fin de la règle 1, sinon elle va catcher la règle 2 en tant qu'url partielle
     
  7. mims1664
    mims1664 WRInaute discret
    Inscrit:
    25 Janvier 2007
    Messages:
    108
    J'aime reçus:
    0
    Ha ouais bien joué !

    c'étais ca .... on vite fait de s'y perdre quand même au milieu de tout ca !!

    merci beaucoup.
     
Chargement...
Similar Threads - rewriting dossiers besoin Forum Date
Architecture MVC, URL rewriting et dossiers virtuels URL Rewriting et .htaccess 31 Mai 2016
Hériter l'url rewriting d'un dossier à ses sous dossiers URL Rewriting et .htaccess 5 Novembre 2012
Pb URL rewriting avec les sous-dossiers URL Rewriting et .htaccess 29 Décembre 2011
rewriting d'url > masquer dossiers dans l'url = casse tete :( URL Rewriting et .htaccess 28 Novembre 2011
url rewriting ne fonctionne pas chez moi URL Rewriting et .htaccess 4 Août 2021
URL rewriting et REGEX bonnes pratiques Développement d'un site Web ou d'une appli mobile 9 Septembre 2020
supprimer /index.html sans url rewriting, possible ? URL Rewriting et .htaccess 13 Novembre 2019
Je bloque sur le rewriting des URL contenant un ? URL Rewriting et .htaccess 3 Septembre 2019
récupération du get après rewriting URL Rewriting et .htaccess 21 Juin 2019
Ralentissement url rewriting URL Rewriting et .htaccess 1 Mai 2019