Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1445 connectés 

  FORUM HardWare.fr
  Programmation
  PHP

  Url rewriting et passage de parametres

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Url rewriting et passage de parametres

n°1686472
axel584
Posté le 14-02-2008 à 17:44:14  profilanswer
 

Bonjour,
J'ai un petit soucis avec une règle de mon URL rewriting :
 
RewriteRule ^(.*)-c-(.*).html$ boutique.php?cPath=$2 [QSA,L,NC]
 
 
Quand j'accède à cette page, ça fonctionne bien, mais quand je veux accèder à cette page en y ajoutant d'autres paramètres, cela ne fonctionne pas (les paramètres ne sont pas passés)
 
Par exemple, si j'accède à cette page :
http://www.mondomaine.fr/boutique. [...] lter_id=11
il me renvoit sur :
http://www.mondomaine.fr/saxophone [...] 48_54.html
 
mais quand j'affiche  
filter <?=$_REQUEST["filter_id"];?> c'est vide
et quand j'affiche :
cPath <?=$_REQUEST["cPath"];?>
j'ai la bonne valeur (42_48_54)
 
Comment faire pour passer les paramètres ?  
Je pensais que QSA servait justement à ça.
 
Merci pour votre aide,
 
Axel

mood
Publicité
Posté le 14-02-2008 à 17:44:14  profilanswer
 

n°1686560
theredled
● REC
Posté le 14-02-2008 à 21:29:25  profilanswer
 

Les trucs que tu passes en GET, pourquoi tu y accèdes pas par $_GET ? $_REQUEST ça date de 1973.
Et pour regarder tout ce qui passe en GET, tu fais print_r($_GET), qui va t'afficher tout le tableau.

 

Sinon pour ton problème, je ne comprend rien, déja je crois que tu as inversé tes 2 URLS, et peux-tu donner un exemple d'adresse à laquelle tu "ajoutes d'autres paramètres" ?


Message édité par theredled le 14-02-2008 à 21:30:39

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1686685
axel584
Posté le 15-02-2008 à 09:13:21  profilanswer
 

Je suis un grand nostalgique :) bon, le $_REQUEST ou $_GET c'est pareil.  
Quand je fait un print_r($GET) j'obtiens ça :
 
tableau Array
(
    [cPath] => 44_93
)
 
Pour ce qui est de passer des paramètres, c'est un formulaire qui le fait :
 

Code :
  1. <form name="filter" action="boutique.php" method="get">
  2. <b>Afficher :</b> &nbsp;
  3. <input type="hidden" name="cPath" value="44_93">
  4. <input type="hidden" name="sort" value="3a">
  5. <select name="filter_id" onchange="this.form.submit()">
  6. <option value="" SELECTED>Tous fabricants</option>
  7. <option value="169">Alhambra</option>
  8. <option value="44">Alvaro</option>
  9. <option value="45">Cuenca</option>
  10. <option value="171">Passion</option>
  11. <option value="46">Stagg</option>
  12. <option value="12">Yamaha</option>
  13. </select>
  14. </form>

n°1686699
theredled
● REC
Posté le 15-02-2008 à 10:00:40  profilanswer
 

Je comprend pas tout là [:totoz]
 
Ton formulaire appelle l'URL "boutique.php", comment tu veux qu'il passe dans ta rewriteRule qui s'applique à l'URL "(.*)-c-(.*).html" :??:


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1686799
axel584
Posté le 15-02-2008 à 12:09:22  profilanswer
 

En fait, je sais pas trop comment fonctionne le principe de l'URL rewriting. J'ai installé un module (SEO) sur OsCommerce. Ce que j'ai compris c'est que le htaccess transforme les "belles" adresses en adresse "ancienne" et qu'il faut dans le code, transformer les "anciennes" adresses pour afficher des belles adresses.
Donc, si j'ai bien compris, la solution serait de faire une fonction qui transforme dans le code du formulaire, l'ancienne adresse boutique pour mettre la "belle" adresse comme champ "action" ?
 
Un autre truc que je comprends pas, c'est comment fait il pour transformer l'ancienne adresse en nouvelle adresse ? (quand j'accède à boutique.php avec des arguments, il m'affiche dans le champ adresse de mon navigateur la "belle" adresse)
 
Merci pour les explications,
 
Axel

n°1686822
theredled
● REC
Posté le 15-02-2008 à 12:25:24  profilanswer
 

axel584 a écrit :

En fait, je sais pas trop comment fonctionne le principe de l'URL rewriting. J'ai installé un module (SEO) sur OsCommerce. Ce que j'ai compris c'est que le htaccess transforme les "belles" adresses en adresse "ancienne" et qu'il faut dans le code, transformer les "anciennes" adresses pour afficher des belles adresses.
Donc, si j'ai bien compris, la solution serait de faire une fonction qui transforme dans le code du formulaire, l'ancienne adresse boutique pour mettre la "belle" adresse comme champ "action" ?


Evite l'URL-rewriting sur les formulaires, tu dois appeler une page php toute conne sinon c'est galère. Ou alors t'envoie tout en Post.
 
Ensuite seulement, à la fin du script appelé, tu redirigeras vers une belle adresse.
 

axel584 a écrit :

Un autre truc que je comprends pas, c'est comment fait il pour transformer l'ancienne adresse en nouvelle adresse ? (quand j'accède à boutique.php avec des arguments, il m'affiche dans le champ adresse de mon navigateur la "belle" adresse)


Soit tu l'écrit direct dans le code html, soit tu te fais une/des fonctions qui te créent tes belles adresses, par ex à partir des anciennes.


---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1687554
axel584
Posté le 17-02-2008 à 20:42:43  profilanswer
 

theredled a écrit :


Evite l'URL-rewriting sur les formulaires, tu dois appeler une page php toute conne sinon c'est galère. Ou alors t'envoie tout en Post.


 
C'est effectivement là que ça coince (quand j'essaye de passer à mes "belles" adresses des parametres)... néanmoins, je sais que c'est possible et j'aimerai beaucoup y arriver.
 
Quelqu'un a t'il une idée de comment faire ?
 
Merci beaucoup,
 
Axel

n°1687833
theredled
● REC
Posté le 18-02-2008 à 14:36:36  profilanswer
 

axel584 a écrit :

 

C'est effectivement là que ça coince (quand j'essaye de passer à mes "belles" adresses des parametres)... néanmoins, je sais que c'est possible et j'aimerai beaucoup y arriver.

 

Quelqu'un a t'il une idée de comment faire ?

 

Merci beaucoup,

 

Axel


Je vois pas l'intérêt mais la façon la plus propre c'est soit d'envoyer les données en post, soit en adresse "moche" en get, puis de redirigier (en php, donc on voit rien coté client) vers la belle adresse.

 

Sinon c'est javascript, mais ce serait inutile, pas pratique, pas accessible et pas propre.


Message édité par theredled le 18-02-2008 à 14:37:01

---------------
Contes de fées en yaourt --- --- zed, souviens-toi de ma dernière lettre. --- Rate ta musique
n°1783840
Rio Grande
bande de nains
Posté le 08-09-2008 à 12:20:25  profilanswer
 

tien j'ai le même problème. Ma règle est :  
 
RewriteRule ^([a-z0-9_-]*)\.html$ /fr/index.php?page=$1 [L]
 
mais dans mes pages je voudrais rajouter des liens pour passer d'une langue à l'autre. Donc je voulais simplement mettre des liens genre :  
?lang=fr ou ?lang=en ...
Mais impossible de récup avec $_GET['lang']. Pourtant quand je fais $_SERVER['REQUEST_URI'] il y a bien le ?lang=**.


---------------
Topics : NFSU2 - NFS : Most Wanted - Volant PC Site :  NFS-Mania.com
n°1783842
FlorentG
Posté le 08-09-2008 à 12:21:59  profilanswer
 

Regarde dans $_GET. Et il manque le QSA pour que les paramètres soient rajoutés :

Code :
  1. RewriteRule ^([a-z0-9_-]*)\.html$ /fr/index.php?page=$1 [QSA,L]

mood
Publicité
Posté le 08-09-2008 à 12:21:59  profilanswer
 

n°1783873
Rio Grande
bande de nains
Posté le 08-09-2008 à 14:10:25  profilanswer
 

je t'aime  :love:  
 
merci  :jap:


---------------
Topics : NFSU2 - NFS : Most Wanted - Volant PC Site :  NFS-Mania.com

Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  PHP

  Url rewriting et passage de parametres

 

Sujets relatifs
[Apache-WAMP] Pb rewriting ("Request exceeded the limit of 10 ...")Code php pour url rewriting : est ce la meilleur solution
[Resolu]Url rewriting qui ralentit mon siteImage transparente au passage de la souris
Url Rewritinghtaccess:cmt empecher d'afficher 1 image par chemin complet dans URL
[résolu] Erreur pour validation W3C à cause d'URLs avec paramètres[RESOLU] PB connexion BD Oracle a cause de l'URL
Plus de sujets relatifs à : Url rewriting et passage de parametres


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR