2010-11-18 4 views
2

J'ai ceci:Aider à comprendre pourquoi cette réécriture ne fonctionne pas?

RewriteRule ^show_shop/([0-9]+)$ show_shop.php?id=$1 [NC] 

Lorsque vous entrez l'URL comme ceci: "domain.com/show_shop/4" l'URL est tiré par les cheveux, et "show_shop.php" est affiché. Donc, la réécriture de kindof fonctionne.

Cependant, le nr derrière la barre oblique ne fonctionne pas. J'utilise ce code:

$id = $_GET['id']; 

mais il en résulte un blanc, c'est-à-dire rien n'existe. Il n'est pas défini selon php.

Quelle pourrait être la cause de cela.

Pour votre information, j'ai beaucoup d'autres règles comme celle-ci, et ils fonctionnent très bien, mais celui-ci semble être gênant ...

Saisie de l'URL manuellement (l'URL réelle) comme celui-ci « show_shop.php? id = 4 "fonctionne bien, et l'id est GET et tout va bien.

Des idées?

+0

vider $ _SERVER et $ _REQUEST pour voir où l'identifiant est tombé se. – Pickle

+0

Sérieusement, cela n'a absolument rien à voir avec la sécurité. Aussi, vous pourriez avoir plus de chance sur serverfault, pas de blague. – rook

Répondre

0

Essayez le QSA-Flag

RewriteRule ^show_shop/([0-9]+)$ show_shop.php?id=$1 [NC,QSA] 
0

devrait-il pas être% plutôt que

$
RewriteRule ^show_shop/([0-9]+)$ show_shop.php?id=%1 [NC] 
+0

Je ne pense pas. – mellamokb

Questions connexes