Probleme d'écriture d'une règle de réécriture (.htaccess)

Discussion dans 'URL Rewriting et .htaccess' créé par rtb, 3 Mai 2005.

Tags:
  1. rtb
    rtb WRInaute impliqué
    Inscrit:
    14 Novembre 2004
    Messages:
    870
    J'aime reçus:
    0
    Bonjour,
    je tente de reecrire certaines url avec cette regle
    RewriteRule ^camping-([a-z]+)-([0-9]+)-([0-9]+)\.html$ /landes-ville-rub.php?id_rubrique=$2&id_mot=$3[QSA,L]
    Cela fonctionne sans probleme ([a-z]+) etant un nom de ville sauf dans les cas ou le nom de ville contient un - et la c'est la cata, j'ai en effet des villes qui en contiennent jusqu'a 3 - .
    Si quelqu'un a une explication pour adapter la regle afin de gerer ce probleme, je debute en UR et cela me pose probleme ...
    Merci
     
  2. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    et un truc du style:
    RewriteRule ^camping-([a-z].*)(-.*)([a-z].*)(-.*)([a-z].*)-([0-9]+)-([0-9]+)\.html$ /landes-ville-rub.php?id_rubrique=$2&id_mot=$3[QSA,L]

    Marche pas?

    En cas, explique un peu mieux l´URL base et L´URL rewrite, pour bien comprendre le problème...
     
  3. rtb
    rtb WRInaute impliqué
    Inscrit:
    14 Novembre 2004
    Messages:
    870
    J'aime reçus:
    0
    J'ai essayer mais cela ne marche pas, les parametre ne semble pas passer...
    Je vais essayer d'etre un peu plus clair :
    les url de depart :
    rubrique-nom-de-ville-var1-var2.html
    vers
    landes-ville-rub.php?id_rubrique=var1&id_mot=var2
    Le probleme vient du nom de ville qui est soit un nom simple $nom, soit $nom-ville soit $nom-de-ville, le separateur - apparaissant x fois, cela pose le probleme de recuperation des variables.
    J'arrive pas a etablir une regle qui traite tous les differents cas.
    Si vous pouviez m'eclairer avec les explications sur la regle proposée ci dessus, je suis une bille en rewriting ... ;-)
    Merci de vos suggestion
    rtb
     
  4. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    les url de depart :
    rubrique-nom-de-ville-var1-var2.html
    vers
    landes-ville-rub.php?id_rubrique=var1&id_mot=var2

    RewriteCond %{REQUEST_URI} ^rubrique-(.*)html$ [NC]
    RewriteRule ^(.*)-(.*)-(.*)\.html$
    http://tonsite/landes-$1-rub.php?id_rub ... &id_mot=$3
    # $1 = rubrique-nom-de-ville

    RewriteCond %{REQUEST_URI} ^landes-(.*)-rub\.php?id_rubrique(.*)html$ [NC]
    RewriteRule ^(.*)rubrique-(.*)$ http://tonsite/$1$2 [L]

    Il y a peut être des erreurs car il est tôt et c´est de tête... A figoler donc.
     
  5. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    Ou sinon (suivant toa règle du début):

    RewriteRule ^camping-([a-z]+((-([a-z]+)).*)-([0-9]+)-([0-9]+)\.html$ /landes-ville-rub.php?id_rubrique=$2&id_mot=$3[QSA,L]
    En fait le problemem vient de tes - de partout.
    Tu peux pas les remplacer comme ça?

    rubrique_nom-de-ville_var1_var2.html

    Ce serait beaucoup plus simple... :lol:
     
  6. rtb
    rtb WRInaute impliqué
    Inscrit:
    14 Novembre 2004
    Messages:
    870
    J'aime reçus:
    0
    merci a toi, je vais faire des essais avec ses regles, je te tiens au courant mais c'est vrai que ces -... pas pratique mais plus pertinent pour le referencement
     
  7. dasikund
    dasikund WRInaute discret
    Inscrit:
    28 Avril 2005
    Messages:
    123
    J'aime reçus:
    0
    Salut,

    Et tout simplement :

    RewriteRule ^rubrique-(.*)-(.*)-(.*)\.html$ landes-ville-rub.php?id_rubrique=$2&id_mot=$3 [L]

    ne marcherait-il pas ?

    Cependant, je ne vois pas d'où provient ton nom de ville ? Est-ce une autre variable ? N'y a-t-il pas de $1 ?

    Si tu pouvais nous éclairer sur la provenance de ton nom de ville, ça pourrait peut-être débloquer l'affaire. :)

    A+

    Doug
     
  8. rtb
    rtb WRInaute impliqué
    Inscrit:
    14 Novembre 2004
    Messages:
    870
    J'aime reçus:
    0
    le nom de ville est ecrit par une fonction en php, on prend le nom de ville, remplace les majuscules par minuscule et les espace par des -
     
  9. rtb
    rtb WRInaute impliqué
    Inscrit:
    14 Novembre 2004
    Messages:
    870
    J'aime reçus:
    0
    essayer mais ca provoque internal serveur error... ;-)
     
  10. dasikund
    dasikund WRInaute discret
    Inscrit:
    28 Avril 2005
    Messages:
    123
    J'aime reçus:
    0
    Oui en effet dans ce cas là, ce sont les "-" dans ton retour de variable de la ville qui posent problème.
    Le moteur de Rewriting considère que chaque chaîne située entre 2 "-" est un paramètre.

    Donc changer les "-" par des "_" pour séparer tes variables est indispensable. En revanche il faut absolument que tu passes le nom de ville en paramètre. Je ne sais pas si tu l'as fait, j'ai cru comprendre que non.

    Peut-être un truc du style :

    RewriteRule ^rubrique_(.*)_(.*)_(.*)\.html$ landes-ville-rub.php?ville=$1&id_rubrique=$2&id_mot=$3 [L]

    J'espère que ça va t'aider.

    Doug
     
  11. rtb
    rtb WRInaute impliqué
    Inscrit:
    14 Novembre 2004
    Messages:
    870
    J'aime reçus:
    0
    Je comprends pas pourquoi je dois passer le nom de ville en parametre, c'est la variable id_mot qui me permet de retrouver la ville.
    en tout cas merci de votre aide a tous les deux ;-) je rame serieux avec ce truc !
    Y'a pas moyen d'ecrire une regle qui isole la partie entre
    ^rubrique-[partie a isolé quelque soit le nombre de -]([a-z]+)[/partie a isolé quelque soit le nombre de -]-([0-9]+)-([0-9]+)\.html$ /landes-ville-rub.php?id_rubrique=$2&id_mot=$3[QSA,L]
    Hum... je sais pas si j'arrive a etre clair...
    merci
     
  12. dasikund
    dasikund WRInaute discret
    Inscrit:
    28 Avril 2005
    Messages:
    123
    J'aime reçus:
    0
    Aaaaaaah ok, tu "calcules" le nom de la ville ensuite !

    Dans ce cas précis, je ne crois pas que tu puisses l'afficher dans l'URL alors, tu obtiendras une URL du style :

    rubrique__param1_param2.html

    avec un double "_".

    Une règle peut peut-être pallier ce problème, mais en réalité, je ne suis pas un expert du rewriting non plus :p. J'ai sous-estimé le problème je pense.

    Désolé de ne pouvoir aider plus.

    Doug
     
  13. rtb
    rtb WRInaute impliqué
    Inscrit:
    14 Novembre 2004
    Messages:
    870
    J'aime reçus:
    0
    en tout ca merci bien a toi a vous d'ailleur ;-)
     
  14. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    mais le nom de la ville te sert à quelquechose?
    Sinon, c´est simple...
     
  15. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
  16. rtb
    rtb WRInaute impliqué
    Inscrit:
    14 Novembre 2004
    Messages:
    870
    J'aime reçus:
    0
    internal serveur error...
     
  17. rtb
    rtb WRInaute impliqué
    Inscrit:
    14 Novembre 2004
    Messages:
    870
    J'aime reçus:
    0
    :oops: desolé ca a l'air de coller
     
  18. rtb
    rtb WRInaute impliqué
    Inscrit:
    14 Novembre 2004
    Messages:
    870
    J'aime reçus:
    0
    Merci a toi correiaj, ca fonctionne parfaitement, et desolé de pas bien expliqué mais ne comprenant pas bien encore le principe, c'est pas evident.
    En tout cas un grand merci a vous
     
  19. correiaj
    correiaj WRInaute impliqué
    Inscrit:
    25 Avril 2005
    Messages:
    987
    J'aime reçus:
    0
    Ya pas de quoi.
    Si tu as des doutes, ou que tu veux bien comprendre le principe de réécriture, le mieux c´est de prendre directement les infos sur le site de Apache. Et si tu parles bien Anglais c´est encore mieux car le texte traduit sur ce module n´est pas complet, mais très utile tout de même.
     
  20. rtb
    rtb WRInaute impliqué
    Inscrit:
    14 Novembre 2004
    Messages:
    870
    J'aime reçus:
    0
    en tout cas s'est vraiment sympa de votre part, je crois que d'avoir bataillé comme ca ca m'a quand meme permis de mieux comprendre le fonctionnement, c'est quand meme assez abstrait comme truc quand on commence. Je vais aller jeter un coup d'oeil sur les doc apache meme si l'anglais... encore un grand merci ;-)
    Je vais voir maintenant si c'est utile pour le ref ;-)
     
Chargement...
Similar Threads - Probleme écriture règle Forum Date
RewriteRule - problème d'écriture de règle URL Rewriting et .htaccess 26 Janvier 2009
Problème de réécriture deuxième règle URL Rewriting et .htaccess 25 Octobre 2005
[Réglé] Problème d'écriture d'URL avec Apache et .htaccess URL Rewriting et .htaccess 14 Avril 2005
Problème écriture d'une règle .htaccess URL Rewriting et .htaccess 1 Avril 2005
Problème de réécriture d'url Développement d'un site Web ou d'une appli mobile 27 Février 2014
Problème d'écriture Développement d'un site Web ou d'une appli mobile 12 Octobre 2013
Problème de syntaxe en réécriture URL Rewriting et .htaccess 23 Octobre 2012
Problème de réécriture d'url. Je vois plus ou chercher URL Rewriting et .htaccess 14 Septembre 2012
Problème de réecriture d'URL .htaccess URL Rewriting et .htaccess 8 Août 2012
Problème de réécriture avec Arfooo URL Rewriting et .htaccess 20 Avril 2012
Problème de réécriture d'url =( URL Rewriting et .htaccess 28 Mars 2012
Problème réécriture et sous-dossiers URL Rewriting et .htaccess 3 Janvier 2012
Problème d'écriture d'une redirection 301 URL Rewriting et .htaccess 24 Novembre 2011
Problème de réécriture sur un sous-domaine URL Rewriting et .htaccess 15 Septembre 2011
Problème classique de réécriture et de redirection 301 URL Rewriting et .htaccess 13 Avril 2011
problème écriture redirection query_string Netlinking, backlinks, liens et redirections 28 Octobre 2010
problème réécriture avec un cms URL Rewriting et .htaccess 27 Avril 2010
Probleme réécriture lien ou.htaccess URL Rewriting et .htaccess 7 Mars 2010
Problème de réecriture d'url en local avec easyphp 3.0 URL Rewriting et .htaccess 29 Mars 2009
Problème de réécriture [RESOLU] URL Rewriting et .htaccess 27 Juin 2008