2009-09-30 6 views
4

Si je mod_rewriting une URL à partir de:

http://www.mysite.com/blog/this-is-my-title/1/

à

http://www.mysite.com/blog.php?title=this-is-my-title&id=1

... est-il possible alors de fixer arbitrairement une valeur get à l'URL plus tard, ou le mod_rewrite le rejette-t-il?

MON RÈGLE REWRITE:

RewriteRule ^blog/([A-Za-z]+)/(0-9]+)/? blog?title=$1&id=$2  [L] 

Exemple:

je peux aller http://www.mysite.com/blog/this-is-my-title/1/?first=Johnnie&last=Wiggles

qui signifierait essentiellement

http://www.mysite.com/blog.php?title=this-is-my-title&id=1&first=Johnnie&last=Wiggles

Je pense que shou Je travaille, mais pour une raison ou une autre, ce n'est pas pour le moment.

+1

Impossible de répondre à cette question sans consulter votre RewriteRule. –

+0

il est ajouté maintenant ... excuses – johnnietheblack

Répondre

9

Vous pouvez ajouter QSA aux RewriteRule drapeaux:

RewriteRule page_([0-9]+)\.html page.php?id=$1 [QSA] 

Redirigera page_1.html?a=2-page.php?id=1&a=2

Cependant, faites attention parce que la demande page_1.html?id=2 redirigera à page.php?id=1&id=2, et (en PHP), $_GET['id'] sera 2.

+0

N'oubliez pas de marquer le début et la fin du chemin URL. – Gumbo

+0

Voici un lien vers la documentation sur QSA: http://httpd.apache.org/docs/current/rewrite/flags.html#flag_qsa – inorganik

3

Il est possible de l'ajouter avec l'indicateur QSA (query string append).

RewriteEngine on 
RewriteRule {from-url} {to-url} [L,NC,QSA]