Probleme d'écriture d'une règle de réécriture (.htaccess)
20 messages • Page 1 sur 2 • 1, 2
Consultez la formation URL Rewriting et sites dynamiques de WebRankInfo / Ranking Metrics
Probleme d'écriture d'une règle de réécriture (.htaccess)
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
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
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...
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...
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
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
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.
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.
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...
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...
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
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
essayer mais ca provoque internal serveur error...correiaj a écrit: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]
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
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
dasikund a écrit: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.
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
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
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
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
si le nom de ville ne te sert à rien, fait comme ça:
(je pensais que le -ville- représentait une variable)
RewriteRule ^(.*)-([0-9]+)-([0-9]+)\.html$ http://tonsite/landes-ville-rub.php?id_ ... &id_mot=$3 [QSA,L]
non plus?
(je pensais que le -ville- représentait une variable)
RewriteRule ^(.*)-([0-9]+)-([0-9]+)\.html$ http://tonsite/landes-ville-rub.php?id_ ... &id_mot=$3 [QSA,L]
non plus?
20 messages • Page 1 sur 2 • 1, 2
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 :
- Suite de l'article sur le fichier .htaccess : l'URL rewriting
- 3ème partie de l'article .htaccess : les réécritures conditionnelles
- Optimiser le référencement d'un forum phpBB : réécriture d'URL
- L'URL Rewriting expliqué aux débutants
- Article sur le fichier .htaccess
- Comment éviter les contenus dupliqués (avec/sans le www)
- L'avenir de la presse en ligne passe par un meilleur référencement
- Tutoriel complet sur l'URL Rewriting (réécriture d'URL)
- Un moyen très simple et gratuit d'obtenir des backlinks
- Gestion des langues et des sessions en PHP / MySQL
- Problème écriture d'une règle .htaccess
- Problème de réécriture deuxième règle
- problème reécriture d'adresse (.htaccess)
- [Réglé] Exclure une URL d'une règle de réécriture
- [Réglé] Problème d'écriture d'URL avec Apache et .htaccess
- Ecriture dynamique de htaccess pour urlrewriting aléatoire
- pb de regle de réécriture
- Régle de réecriture erronée ?
- un début de règle de réécriture
- Ecrire une règle de réécriture
- [réglé] Méthode GET et réécriture d'URL
- Règle de réécriture, besoin d'aide
- Aide pour l'écriture d'une regle de réécriture!
- Règle basique de réécriture qui ne fonctionne pas (débutant)
- conséquence de petites modifs dans une régle de réécriture
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités





le forum