Page 1 sur 1

Rewriting url plusieurs pages

Posté : 07 oct. 2017, 14:51
par cris84
Bonjour à tous,
j'ai un peu de mal à m'en sortir sur le fichier htaccess en effet, je voudrais réécrire les pages (quand l'utilisateur change de page).

voila ce que je fais déjà :
RewriteRule ^mon_compte:([a-z]+)-([0-9]+)$ /mon_compte.php?action=$1&compteur=$2 
or si je rajout une condition $3 après, l'url prend en compte le compteur et pas la page. Il faudrait que je remplace page par compteur dans mon code php mais c'est pas le but...
RewriteRule ^mon_compte:([a-z]+)-([0-9]+)-)-([0-9]+)$ /mon_compte.php?action=$1&compteur=$2&page=$3 
Bien sûr l'url est correcte si je remplace compteur par page mais du coup l'url est incorrecte avec compteur.
Y-a-t-il une astuce ?
Je ne sais pas si j'ai été clair mais dites moi, je compléterai.

Merci à tous

Re: Rewriting url plusieurs pages

Posté : 16 oct. 2017, 18:12
par @rthur
Pas sûr d'avoir compris.
Peux tu donner des exemples de ce qui doit s'afficher dans la barre d'adresse et de ce la façon dont elle doivent être transformées (avec les mêmes valeurs donc).

Par ailleurs, je te recommande de ne pas utiliser le caractère deux-points dans tes urls car il risque d'être encodé par certains navigateurs en %3A ce qui n'est pas très joli et incompréhensible pour l'utilisateur.

Re: Rewriting url plusieurs pages

Posté : 16 oct. 2017, 19:23
par cris84
Bonjour,

voici un exemple de l'affichage dans la barre d'adresse :
https://monsite.fr/mon_compte.php?action=sites&page=2

je suis obligé de laisser l'adresse comme elle est car "page" est réécrit par "compteur" :
mon_compte.php?action=$1&compteur=$2 
les url qui contiennent "compteur" sont réécrites correctement :

https://monsite.fr/mon_compte:sites-1.html

Pour les 2 points j'ai prie note, je vais modifier

Re: Rewriting url plusieurs pages

Posté : 17 oct. 2017, 11:30
par @rthur
je suis obligé de laisser l'adresse comme elle est car "page" est réécrit par "compteur" :
mon_compte.php?action=$1&compteur=$2 
C'est à dire ? tu as d'autres règles de réécritures que celle indiquée dans ton premier post ?

Re: Rewriting url plusieurs pages

Posté : 17 oct. 2017, 13:10
par cris84
Bonjour,
je vous donne les 3 seules règles :

RewriteRule ^mon_compte$ /mon_compte.php
RewriteRule ^mon_compte:([a-z]+)$ /mon_compte.php?action=$1
RewriteRule ^mon_compte:([a-z]+)-([0-9]+)$ /mon_compte.php?action=$1&compteur=$2 

c'est si je rajoute la règle ci-dessous que la réécriture de l'URL prend en compte "compteur" et pas "page" :

RewriteRule ^mon_compte:([a-z]+)-([0-9]+)-([0-9]+)$ /mon_compte.php?action=$1&compteur=$2&page=$3

J'avoue ne pas comprendre...

Re: Rewriting url plusieurs pages

Posté : 17 oct. 2017, 14:03
par @rthur
Ce qui est bizarre c'est que tu ajoutes .html à la fin alors que tu n'as pas cela dans tes règles.

Si je testes tes règles, elles ont l'air de fonctionner correctement :
http://htaccess.mwl.be?share=0fba6ca2-7 ... 142f0c473d

Re: Rewriting url plusieurs pages

Posté : 17 oct. 2017, 14:12
par cris84
C'est vrai, il s'agit d'une erreur lorsque j'ai écris l'URL j'ai ajouté .html mais c'est pas le cas.

Par contre je confirme que la troisième ne fonctionne pas quand j'ai dans l'URL "compteur" ($_GET['compteur"]) et "page" ($_GET['page']) :

RewriteRule ^mon_compte:([a-z]+)-([0-9]+)-([0-9]+)$ /mon_compte.php?action=$1&compteur=$2&page=$3

Edite :

avec cette url
<a href=\"mon_compte:sites-".($page-1)."\" >&laquo;</a></li> ";
et l'URL réécrite comme ci dessus "page" et remplacé par "compteur" du coup comme "compteur" n'existe pas l'URL ne fonctionne pas...

Re: Rewriting url plusieurs pages

Posté : 17 oct. 2017, 14:19
par @rthur
Regarde le lien que je t'ai indiqué qui permet de tester ton url rewriting : http://htaccess.mwl.be/?share=0fba6ca2- ... 142f0c473d


Si tu appelles l'url :
:arrow: https://monsite.fr/mon_compte:sites-1-5
Alors la transformation effectuée est correcte :
:arrow: https://monsite.fr/mon_compte.php?actio ... r=1&page=5

Si dans ton script PHP tu n'arrives pas à récupérer les bonnes valeurs, fait un var_dump($_GET) pour vérifier ce que tu reçois.

Re: Rewriting url plusieurs pages

Posté : 17 oct. 2017, 14:49
par cris84
Alors effectivement le résultat avec print_r($_GET); :

Array ( [action] => sites [compteur] => 2 ) 2 étant la page appelée.

si je supprime :
RewriteRule ^mon_compte:([a-z]+)-([0-9]+)$ /test/mon_compte.php?action=$1&compteur=$2
print_r($_GET); :

Array ( [action] => sites [page] => 2 )

Re: Rewriting url plusieurs pages

Posté : 17 oct. 2017, 18:29
par @rthur
En appelant quelle url ?

Essaye de reproduire via l'outil que je t'ai indiqué ce que tu obtiens et ensuite fait un "share" des 2 cas qui te semble incorrectes, ça sera + simple pour t'aider.

Re: Rewriting url plusieurs pages

Posté : 17 oct. 2017, 19:46
par cris84
Voici donc le résultat qui donne les 2 règles qui sont utilisées en même temps :

http://htaccess.mwl.be?share=ca9019e0-3 ... 5c680dbb98

Ne fonctionne pas :

http://htaccess.mwl.be?share=ee60fcf5-a ... f8f3b3c640

Fonctionne puisque c'est "$_GET['page']" :

http://htaccess.mwl.be?share=6eca16d5-e ... ebf0b23e9f

Fonctionne sur le test mais pas en réel vu qu'il s'agit de "$_GET['page']", il n'y a pas de $_GET['compteur'] dans mon script :

http://htaccess.mwl.be?share=7d5341ec-8 ... 61c8b5922c