|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 | ||||
|
Membre du Club
![]() Inscription : juin 2006 Messages : 228 ![]() |
bonjour,
je voudrais mettre une règle de réécriture d'url qui permette la chose suivante cette url Citation:
Citation:
j'ai testé ça mais je suis loin de ce que je veux Code :
|
||||
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : août 2005 Messages : 8 278 ![]() |
Rien compris : tu parles d'avoir des URL en motclé01-motclé02-RODEZ-AVEYRON.html, donc 4 mots (ne contenant pas -) séparés par un - alors que ton expression régulière en utilise 9. Y a comme qui dirait un truc qui m'échappe
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#3 | |||
|
Membre du Club
![]() Inscription : juin 2006 Messages : 228 ![]() |
merci pour la réponse,
effectivement j'ai fait un peu n'importe quoi en fait , actuellement je fait passer , dynamiquement, par l'url 9 variables par exemple ceci Citation:
( à noter que comme je risque, comme je l'illustre dans cet exemple d'avior dans ces 2 variables des valeurs avec des "-", comme pour seine-saint-denis, je vais opter pour l'underscore) une fois réecrite l'url deviendrait motclé1_motclé2_BOBIGNY_Seine-saint-denis.html j'ai modifié la regle la voici Code :
encore merci pour le coup de main |
|||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : août 2005 Messages : 8 278 ![]() |
Si les 2 paramètres à récupérer sont bien les deux derniers du nom, c'est assez facile : il suffit de repérer le dernier et l'avant dernier _ :
Code :
RewriteRule _([^_]*)_([^_]*)\.html$ /repertoire/test2.php?id_var=150&var01=marcel&var02=bluzar&var03=france&var4=$1&var05=membres&var06=tartempion&var07=peluche&var8=$2 [L]
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#5 |
|
Membre du Club
![]() Inscription : juin 2006 Messages : 228 ![]() |
merci
mais par rapport a la règle que j'ai mis , je ne vois pas ce qui change. enfin je me trompe peut etre ? ![]() y'a t'il un moyen tout en gardant toutes les variables de l'url avant "rewritage" de ne changer que celle qui ont comme nom de variable $1 et $2 . Code :
RewriteRule _([^_]*)_([^_]*)\.html$ /repertoire/test2.php?id_var=$3&var01=$4&var02=$5&var03=$6&var4=$1&var05=$6&var06=$7&var07=$8&var8=$2 [L] mais quel est la syntaxe de cette règle si elle existe ! encore merci pour tes lumières ! |
|
|
00
|
|
|
#6 | |
![]() ![]() Inscription : août 2005 Messages : 8 278 ![]() |
Citation:
Je ne suis vraiment pas sûr d'avoir compris ce que tu veux faire. Essaie d'ajouter le flag QSA :
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
|
00
|
|
|
#7 |
|
Membre du Club
![]() Inscription : juin 2006 Messages : 228 ![]() |
merci,
en testant ta règle , il me prend les deux PREMIÈRES variables de l'Url , j'ai donc modifié mon url d'origine pour mettre celles qui m’intéressent en 2em et 3em position, la première position étant celle de la variable de l'id. Code :
RewriteRule _([^_]*_([^_]*)_([^_]*)\.html$ /repertoire/test2.php?id_var=$1&villes=$2&departement=$3&var2=$4&var3=$5&var4=$6&var5=$7&var8=$8&var9=$9 [QSA,L] 15230_ANDRESY_Yvelines.html , il m'affiche certaine donnée , mais les autres qui ont besoin de recevoir les autres variables d'url , ne s'affichent pas soit je modifie ma façons d'afficher ses données soit... autre chose
|
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : août 2005 Messages : 8 278 ![]() |
Tu utilises $4, $5, etc. dans ta réécriture sans les identifier dans ton filtre d'URL (tu as 3 groupes entre parenthèses, donc tu ne peux utiliser que $1, $2 et $3). Si tu ne donnes pas ces paramètres d'une façon ou d'une autre, Apache aura énormément de mal à en deviner la valeur
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#9 |
|
Membre du Club
![]() Inscription : juin 2006 Messages : 228 ![]() |
merci,
effectivement si je ne passe pas ces paramètres c'est impossible d'afficher derrière les données voulues. y'a t'il une règles de réécriture qui permettent de passer les autres variables de la façon suivante : $1,$2 et $3 sont réécrit tel que dans la règle données plus haut , mais ensuite toutes les autres variables ( $4,$5,$6 , etc) sont réécrites avec la même valeur commune ( un mot clé par exemple ) sinon tant pis je vais regarder d'autre solutions encore merci pour le coup de main ! |
|
|
00
|
|
|
#10 |
![]() ![]() Inscription : août 2005 Messages : 8 278 ![]() |
Et qui est calculée comment ? Toujours la même question : comment Apache connaît cette valeur commune ?
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#11 |
|
Membre du Club
![]() Inscription : juin 2006 Messages : 228 ![]() |
merci Mac,
peut être par une règle qui dirait : si la variable a pour nom l'un de ces marqueurs suivants $4,$5,$6 (etc..) alors transmet leur valeurs propre mais affiche dans l'url le même mot clé. mais ça me semble pas possible , car comment la page va différencier tout ça ... encore merci Mac ps : est ce la réécriture d’URL récursive serait une piste ? |
|
|
00
|
|
|
#12 |
![]() ![]() Inscription : août 2005 Messages : 8 278 ![]() |
Tu peux donner un exemple de ce que tu voudrais faire car je ne comprends pas ?
Le récursif est possible mais une fois de plus, si tu ne donnes pas à Apache les valeurs que tu veux utiliser, il ne pourra pas les deviner.
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#13 |
|
Membre du Club
![]() Inscription : juin 2006 Messages : 228 ![]() |
merci,
et bien ce que je voudrais faire c'est ceci : actuellement j'ai des urls comme ça : Code :
page.php?var01=valeurvar1&var02=valeurvar2&var03=valeurvar3&var04=valeurvar4&var05=valeurvar5&var06=valeurvar6&var07=valeurvar7&var08=valeurvar8 Code :
motclé1_motclé2_valeurvar1_valeurvar2_valeurvar3_motclé3.html |
|
|
00
|
|
|
#14 | |
![]() ![]() Inscription : août 2005 Messages : 8 278 ![]() |
Si, c'est possible, mais je ne vois toujours pas comment tu passes de motclé3
Citation:
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
|
00
|
|
|
#15 |
|
Membre du Club
![]() Inscription : juin 2006 Messages : 228 ![]() |
ce qui suit est pur hypothèse !
peut être en passant par un script php + htacces chaque variable ( de la 4 à la 9, celle qui doivent être converties en un seule mot clé ) est "repéré" par une regex selon l'ordre ou elle écrite dans l'url ,une regle dans le htaccess attribue un mot clé pour ces 6 variable , et sur la page qui affiche les données , le script analyse cette url en attribuant au mot clé de l'url les 6 valeurs, une sorte de dispatching fait par une regex. ...
|
|
|
00
|
|
|
#16 |
![]() ![]() Inscription : août 2005 Messages : 8 278 ![]() |
Oui, bien sûr, c'est faisable, mais j'ai peur que ça fasse un .htaccess difficile à maintenir. En gros, la question est de savoir d'où vient le mapping mot clé / les 6 variables et quel est le nombre de mots clés dont on parle ?
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
|
|
#17 | |
|
Membre du Club
![]() Inscription : juin 2006 Messages : 228 ![]() |
Citation:
il est peut être possible de faire une regex qui va attribuer à chacune des 6 variables qui nous intéressent un marqueur. Chaque marqueur va être décodé et correspondre à l'une des 6 LETTRES d'un mot clé, ainsi dans l'url une fois modifiée on aura notre mot clé et le passage des 6 variables. les 6 lettres devront être contiguë sans underscore entre elle à l'inverse des 3 premières variable du début de l'url au final on a donc un ou deux mot clé puis les 3 premières variable tel qu'écrite ci dessus , puis les 6 valeurs réécrite en 6 lettres qui forme après traitement les 6 lettre d'un mot clé ( lui étant toujours identique ) |
|
|
|
00
|
|
|
#18 | |
![]() ![]() Inscription : août 2005 Messages : 8 278 ![]() |
Euh... Tu peux donner un exemple ?
Citation:
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
|
00
|
|
|
#19 | |
|
Membre du Club
![]() Inscription : juin 2006 Messages : 228 ![]() |
Merci Mac,
Citation:
car au fond ce qui compte c'est d'avoir au final une url plus simple que celle avec les 9 variables. est t'il possible d'attribuer à l'url réécrite non pas la valeur de $4,$5 etc..mais le nom même de la variable ( ici les lettres composants le mot clé) tout en passant les valeurs des variables pour l'affichage correcte sur la page cible. encore merci pour le coup de main ! |
|
|
|
00
|
|
|
#20 |
![]() ![]() Inscription : août 2005 Messages : 8 278 ![]() |
Pareil, pas tout compris : tu peux donner un exemple ?
__________________
![]() Du détail, du détail, du détail !!! Revenons à la source : lisons la documentation et les fichiers de trace, la réponse à notre problème s'y trouve sans doute
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com