Php, get et rewriting ?

Répondre


Cette question est un moyen d’empêcher des soumissions automatisées de formulaires par des robots.
Smileys
:D :) :( :o :shock: :? 8-) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: =D> #-o =P~ :^o :non: :priere: 8-|
Voir plus de smileys
  Revue du sujet
 

  Étendre la vue Revue du sujet : Php, get et rewriting ?

par karty » 12 févr. 2009, 22:09

Merci du conseil, :wink: malheureusement ça ne convient pas à ce dont je recherche, mais ça peut être une bonne astuce pour d'autres...

par Alkann » 09 févr. 2009, 14:21

Tu peux essayer quelque chose :

Code : Tout sélectionner

RewriteCond %{QUERY_STRING} truc=(.*) RewriteRule ^page/([^/]+)/$ page.php?test=$1&truc=%1 [L]
Cela te permet de récupérer les paramètres après le ?

par karty » 06 févr. 2009, 20:41

Mais justement ce sont des variables supplémentaires, non-adaptables et non-générales. Une variable GET pour récupérer des stats ici et là, etc... pas de redirection définie. Il n'y a aucune autre solution ?

par Victor BRITO » 06 févr. 2009, 15:43

Oui la réécriture marche parfaitement, tout est activé... Mais ce sont les variables supplémentaires qui ne sont pas interprété :

http://wwww.monsite.com/mapage/mavariab ... lementaire

:cry:
Avec ta règle de réécriture actuelle :

Code : Tout sélectionner

RewriteRule ^page/([^/]+)/$ page.php?test=$1 [QSA,L,R=301]
c'est normal, puisque l'expression régulière exclut tout / entre "page/" et le / final.

Il faudrait une règle supplémentaire pour tenir compte de la présence de deux variables.

Code : Tout sélectionner

RewriteRule ^page/([^/]+)/([^/]+)/$ page.php?test=$1&truc=$2 [QSA,L,R=301]
Règle à adapter selon la forme des URLs à paramètres dont tu disposes.

par karty » 06 févr. 2009, 15:12

Oui la réécriture marche parfaitement, tout est activé... Mais ce sont les variables supplémentaires qui ne sont pas interprété :

http://wwww.monsite.com/mapage/mavariab ... lementaire

:cry:

par Victor BRITO » 06 févr. 2009, 13:34

As-tu bien pris soin d'insérer, avant les règles de réécriture, la ligne suivante :

Code : Tout sélectionner

RewriteEngine on
?

Et, avant tout, t'es-tu assuré que le mod_rewrite d'Apache était bien activé chez ton hébergeur ? ;)

par karty » 06 févr. 2009, 10:43

J'aurais du le préciser, mais mon URL est réécrite comme ceci dans mon htacess :
RewriteRule ^page/([^/]+)/$ page.php?test=$1 [QSA,L,R=301]
et le tag [L] ou [QSA] ne change rien au problème... Ma page n'interprête pas la variable. Je ne comprends pas pourquoi ? Une idée ? :(

par Sékiltoyai » 06 févr. 2009, 02:08

Ouais, ya un truc avec le query_string dans apache. Je n'avais pas cherché longtemps, mais regarde tu côté du tag [QSA]…

par karty » 06 févr. 2009, 01:06

C'est juste ! :D

Mais sinon est-ce normale de ne pas récupérer les variables GET sur un rewriting ?

Ex. avec un $_GET['testbis'] ici :
http://www.monsite.com/page/variable/?t ... revariable

Existe-t-il un moyen pour les récupérer ou dans quels cas celà ne fonctionnerait-il pas ? Peux-tu m'aider à ce sujet, car au-delà du vocabulaire, c'est ce qui me pose aussi problème lol ! :P

Merci a+

par Sékiltoyai » 06 févr. 2009, 00:54

Note de vocabulaire. C'est http://www.monsite.com/page/variable/ qui est réécrit en http://www.monsite.com/page.php?test=variable et non le contraire…

Php, get et rewriting ?

par karty » 05 févr. 2009, 23:46

Bonjour, :)

désolé de refaire un topic, mais j'aurais une nouvelle fois besoin d'avis. Je rencontre un problème avec mon rewriting et l'interprétation de certaines variables php supplémentaire au rewriting. Je m'explique.


J'ai en effet une page sous cette forme :
http://www.monsite.com/page.php?test=variable

qui est réécrit comme suit :
http://www.monsite.com/page/variable/

et je souhaiterais que cette page puissse interpréter certaine variable GET supplémentaire sur quelques pages, par exemple :
http://www.monsite.com/page/variable/?t ... revariable


Mais lorsque je lance cette page, elle n'interprête pas ce qui est après la réécriture :
?testbis=autrevariable

Alors que cette page marche parfaitement pour information :
http://www.monsite.com/page.php?test=va ... revariable


Donc c'est bien un problème avec la relation rewriting et variable GET derrière... Mais pourquoi celà ne marche-t-il pas ? Quelqu'un a une idée ou peut m'aider à ce sujet ?

Merci de votre aide. Cordialement,

karty :wink: