You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@httpd.apache.org by Kae Verens <ka...@webworks.ie> on 2009/01/11 13:06:26 UTC
[users@httpd] mod_rewrite, passing GET variables forward
hi all,
I want to rewrite /foo?bar=red to /index.php?page=foo&bar=red
I try it with this, but it does not work:
RewriteRule ^(.*)\?(.*)$ /index.php?page=$1&$2 [L]
however, if I instead use an ampersand:
RewriteRule ^(.*)\&(.*)$ /index.php?page=$1&$2 [L]
I can rewrite /foo&bar=red to /index.php?page=foo&bar=red
i can't use that solution, though - is there a way to pass the GET
variables forward?
kae
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org
Re: [users@httpd] mod_rewrite, passing GET variables forward
Posted by Kae Verens <ka...@webworks.ie>.
Bob Ionescu wrote:
> 2009/1/11 Kae Verens <ka...@webworks.ie>:
>
>> I want to rewrite /foo?bar=red to /index.php?page=foo&bar=red
>> I try it with this, but it does not work:
>> RewriteRule ^(.*)\?(.*)$ /index.php?page=$1&$2 [L]
>>
>
> The query string is not part of the rule-patern as described in the
> manual. You're looking for the QSA flag to append an existing query
> string to the new ine. Your regular expression will cause problems,
> too, since it looks like you're using the rule in per-directory
> context. After rewriting to /index.php, there'll be a reprocessing
> with "index.php" and your rule will be hit and matched again. May be
> you'd like to match only characters not containing a period (i.e. no
> file extension):
>
> RewriteRule ^([^.]+)$ /index.php?page=$1 [QSA,L]
>
perfect. thanks.
kae
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org
Re: [users@httpd] mod_rewrite, passing GET variables forward
Posted by Bob Ionescu <bo...@googlemail.com>.
2009/1/11 Kae Verens <ka...@webworks.ie>:
> I want to rewrite /foo?bar=red to /index.php?page=foo&bar=red
> I try it with this, but it does not work:
> RewriteRule ^(.*)\?(.*)$ /index.php?page=$1&$2 [L]
The query string is not part of the rule-patern as described in the
manual. You're looking for the QSA flag to append an existing query
string to the new ine. Your regular expression will cause problems,
too, since it looks like you're using the rule in per-directory
context. After rewriting to /index.php, there'll be a reprocessing
with "index.php" and your rule will be hit and matched again. May be
you'd like to match only characters not containing a period (i.e. no
file extension):
RewriteRule ^([^.]+)$ /index.php?page=$1 [QSA,L]
Bob
---------------------------------------------------------------------
The official User-To-User support forum of the Apache HTTP Server Project.
See <URL:http://httpd.apache.org/userslist.html> for more info.
To unsubscribe, e-mail: users-unsubscribe@httpd.apache.org
" from the digest: users-digest-unsubscribe@httpd.apache.org
For additional commands, e-mail: users-help@httpd.apache.org