2010-12-02 12 views
0

Alors, j'avais une question plus tôt au sujet mod_rewrite que vous trouverez ici mod_rewrite changing /subpage/ to /subpageproblèmes avec mod_rewrite et GET

Mais maintenant j'ai un tout nouveau problème avec ce ... Comment puis-je faire le travail GET?

Comme si je dois passer certaines variables avec GET, ex: mypage.com/subpage/?name=Jamie

Mon mod_rewrite ressemble à ceci:

Options +FollowSymLinks 
RewriteEngine On 
RewriteCond %{SCRIPT_FILENAME} !-d 
RewriteCond %{SCRIPT_FILENAME} !-f 

RewriteRule ^([A-Za-z0-9-]+)/?$ ?p=$1 [L] 

Je comprends que le problème probablement a à voir avec que je passe déjà et réécrire une demande GET. Alors, comment puis-je modifier cela pour accepter toute autre requête GET que je pourrais avoir besoin de traiter?

MISE À JOUR:
Pour clarifier le problème un peu. Si j'essaie l'url mypage.com/subpage/?name=Jamie chargements de page comme si j'ai utilisé l'URL mypage.com/subpage/ et "nom" n'est jamais passé. Utilisation de mon URL d'origine mypage.com?p=subpage & name = Jamie fonctionne comme il se doit.

Je suppose que j'ai besoin de régler cela en quelque sorte ... mais comment?
Merci d'avoir pris le temps de lire ma question probablement facile!

+0

Qu'est-ce qui ne va pas? –

+0

Eh bien, si j'essaie l'url mypage.com/subpage/?name=Jamie charge la page comme si j'avais utilisé url mypage.com/subpage/ et le nom n'est jamais passé, au moins il semble que. En utilisant mon URL d'origine, mypage.com?p=subpage&name=Jamie fonctionne comme il se doit. – jamietelin

Répondre

3

Utilisez le QSA drapeau — Query String Append:

RewriteRule ^([A-Za-z0-9-]+)/?$ ?p=$1 [L,QSA] 

'qsappend|QSA' (query string append)
Ce drapeau force le moteur de réécriture pour ajouter une partie de chaîne de requête de la substitution chaîne à la chaîne existante, au lieu de le remplacer. Utilisez ceci lorsque vous voulez ajouter plus de données à la chaîne de requête via une règle de réécriture.

+0

Super! Cela a fait le travail. : D – jamietelin

+0

Parfait :) Joyeux hacking. – jensgram

0

essayer

RewriteRule ^([A-Za-z0-9-]+)/\?$ ?p=$1 [L] 

comme '? est un caractère méta dans regex, il doit être échappé

+0

en ajoutant le \ ne fonctionne pas du tout, alors tout ce que je reçois est la page n'existe pas. La demande originale fonctionne bien, mais je ne peux pas passer plus Get-demandes que je semble. – jamietelin