url rewriting... besoin de conseils pour ma page

url rewriting... besoin de conseils pour ma page - PHP - Programmation

Marsh Posté le 15-09-2005 à 14:19:51    

Bonjour,
je souhaiterais utiliser la fonction reecriture d'url sous apache.
 
Je me suis renseigné vite fait et voilà mon soucis:
 
ma page catalogue.php à plusieurs URL:
 
catalogue.php
catalogue.php?id=1&debut=0
catalogue.php?debut=0&id=1&grande=2
 
voilà les 3 formes les plus présentes sur ma page.
 
donc un coup c'est id=$1&debut=$2
puis c'est debut=$1&id=$2
 
est-ce que ça peut me poser des problemes quand je vais ecrire la commande dans le fichier .htaccess ?
est-ce que je peux ecrire une ligne en fontion de ces 3 cas ou je dois modifier toutes mes url dans le code php?
 
genre:

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^catalogue-([0-9]+)-([0-9]+)\.html$  catalogue.php?id=$1&debut=$2  [L]
RewriteRule ^catalogue-([0-9]+)-([0-9]+)-([0-9]+)\.html$  catalogue.php?debut=$1&id=$2&grande=$3[L]


 
En résumé, est ce que je peux faire de la réécrire avec cette forme d'url et si oui quelle est la syntaxe.
Merci :)

Reply

Marsh Posté le 15-09-2005 à 14:19:51   

Reply

Marsh Posté le 15-09-2005 à 14:24:29    

nombril a écrit :


En résumé, est ce que je peux faire de la réécrire avec cette forme d'url et si oui quelle est la syntaxe.
Merci :)


 
Ah ben avec un résumé comme ça... [:autobot]  
 

Citation :


donc un coup c'est id=$1&debut=$2  
puis c'est debut=$1&id=$2  


 
Et ben je suppose que ça change rien du tout au niveau de la page qui s'affiche. Tu fais une règle pour chaque forme et zou.
 
Qu'est-ce qui ne va pas avec ton htaccess actuel ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-09-2005 à 14:26:40    

ça serait comme même plus logique de garder le même ordre dans les arguments

Reply

Marsh Posté le 15-09-2005 à 14:26:40    

je n'en ai pas encore fais, je préfere demander des conseils pour ne pas faire de boulettes!

Reply

Marsh Posté le 15-09-2005 à 14:28:20    

Pour l'ordre des arguments, c'est bien ce que je me disais, mais si jamais j'avais pas besoin de retravailler mon code php ça m'arrangerait...

Reply

Marsh Posté le 15-09-2005 à 14:29:01    

nombril a écrit :

je n'en ai pas encore fais, je préfere demander des conseils pour ne pas faire de boulettes!


 
Eh ben celui que tu nous colles c'est pas de toi ?
 
A première vue il convient, mais c'est vrai que c'est pas génial, les arguments qui ont pas toujours le même ordre.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-09-2005 à 14:30:16    

si c'est de moi, mais je l'ai pas encore testé, je suis juste allé voir des tutos et je ne suis pas sur de moi.
Donc je vais tester, voir si celui si fontionne!

Reply

Marsh Posté le 15-09-2005 à 14:35:05    

c'est marrant ça marche pas!

Reply

Marsh Posté le 15-09-2005 à 14:39:47    

j'ai créé mon .htaccess avec que ça dedans:


Options +FollowSymlinks
RewriteEngine on
RewriteRule ^catalogue-([0-9]+)-([0-9]+).html$  catalogue.php?id=$1&debut=$2  [L]
RewriteRule ^catalogue-([0-9]+)-([0-9]+)-([0-9]+).html$  catalogue.php?debut=$1&id=$2&grande=$3[L]


 
Je ne vois pas pourquoi ça ne fontionne pas...
quelqu'un peu m'aider  :??:

Reply

Marsh Posté le 15-09-2005 à 14:51:24    

Ben si ça doit marcher.  
 
Et c'est \.html, comme dans ton premier post (même si l'affichage d'HFR a masqué les \), pas .html (même si ça l'empêchera pas de marcher).


Message édité par sielfried le 15-09-2005 à 14:52:07

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-09-2005 à 14:51:24   

Reply

Marsh Posté le 15-09-2005 à 14:55:02    

Options +FollowSymlinks
RewriteEngine on
RewriteRule ^catalogue-([0-9]+)-([0-9]+)\.html$ catalogue.php?id=$1&debut=$2 [L]
RewriteRule ^catalogue-([0-9]+)-([0-9]+)-([0-9]+)\.html$  catalogue.php?debut=$1&id=$2&grande=$3[L]


 
c'est vrai, j'avais oublié.
Mais ça ne fontionne toujours pas mieux  :(
 
il faut bien mettre que ça?


Message édité par nombril le 15-09-2005 à 14:55:25
Reply

Marsh Posté le 15-09-2005 à 14:58:53    

Ca marche pas, c'est-à-dire ?
 
Tu tapes quoi dans la barre d'adresse ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-09-2005 à 15:01:46    

Ha bin si je suis bete
je croyais que si on cliquait sur les photos du catalogue on verait une url du genre .../catalogue-1-2-3.html
 
mais en fait on voit toujours les ?id= etc

Reply

Marsh Posté le 15-09-2005 à 15:06:37    

Ah oui ça les liens vont pas se changer tout seuls. :spamafote:


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-09-2005 à 15:09:15    

petit hic quand meme:
si je tape
http://www.vannerie-lambert.com/catalogue-7-10-2.html
je devrais avoir cette page:
http://www.vannerie-lambert.com/ca [...] 0&grande=2
 
mais ça ne fontionne pas, il ne comprend pas le parametre grande=2

Reply

Marsh Posté le 15-09-2005 à 15:10:12    

T'as bien mis \. et pas . avant html ?


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-09-2005 à 15:10:57    

inverse tes deux régles, la premiére modifie l'adresse qui ne tombe donc plus dans la seconde

Reply

Marsh Posté le 15-09-2005 à 15:12:12    

omega2 a écrit :

inverse tes deux régles, la premiére modifie l'adresse qui ne tombe donc plus dans la seconde


 
A priori son premier masque matche pas catalogue-7-10-2.html, sauf s'il a laissé . au lieu de \.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-09-2005 à 15:13:37    

j'ai bien mis les \
et meme en inversant les regles, il ne m'affiche pas la page comme il faut..

Reply

Marsh Posté le 15-09-2005 à 15:14:25    

Fout un print_r($_GET) au début de ta page.


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-09-2005 à 15:15:12    

cherchez plus, c'est encore une bétise... le [L] touchait a grande=$3
 
merci pour vos réponses, je me coucherais moins bete ce soir!

Reply

Marsh Posté le 15-09-2005 à 15:18:50    

Je vais sembler super con là mais comment apache il défini l'ordre des régles?

Reply

Marsh Posté le 15-09-2005 à 15:22:39    

omega2 a écrit :

Je vais sembler super con là mais comment apache il défini l'ordre des régles?


 
Ben il les teste une par une selon leur ordre dans le fichier, a priori. [:figti]


---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-09-2005 à 15:26:55    

Ben alors à priori, il devrait pas passer dans la seconde régle vu que la premiére est censé avoir modifié l'adresse.
A moins que le "[L]" à une sifgnification que je conais pas. C'est peut être pour ça que quand j'ai testé chez moi, j'avais l'adresse du fichier sur le disque et pas sur le serveur web. :lol:

Reply

Marsh Posté le 15-09-2005 à 15:29:58    

Le [L] lui dit de s'arrêter dès qu'une règle matche (de pas y aller en récursif avec les suivantes), si jme gourre pas.
 
Cela dit ici la première règle matche pas catalogue-7-10-2.html donc y'a pas de soucis. Et pour une url de la forme catalogue-7-10.html, la première matche mais y'a aucun risque que la seconde vienne rematcher le résultat. (C'est poétique tout ça. [:mlc] )
 
Bref ici le [L] est logique et ça évite de parser tout le fichier à chaque fois, mais j'vois pas ce que ça aurait changé sans, pour le coup.


Message édité par sielfried le 15-09-2005 à 15:30:38

---------------
StarCraft Professional Gaming Database | [Ze Topic] Starcraft/BroodWar
Reply

Marsh Posté le 15-09-2005 à 15:45:23    

Ha ben oui, la premiére régle ne veut aucun caractére entre le second nombre et le .html . :D Suis-je bête parfois à lire trop vite. :lol:

Reply

Marsh Posté le    

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed