httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Joshua Slive <jsl...@gmail.com>
Subject Re: [users@httpd] Apache RewriteRule
Date Sat, 19 Nov 2005 16:12:38 GMT
On 11/19/05, Kevin Smith <kevin@netsmith.ltd.uk> wrote:
> Hi All,
>
> Wonder if someone can work this one outt, I'm a bit stumped.
>
> I have the following RewriteRule:
>
> RewriteRule ^/product_category/([0-9]+)\.html\?source\=(.*)
> /product_category.php?top_cat_id=$1&source=$2
>
> This is meant to rewrite this URL:
>     http://www.foobar.com/product_category/22.html?source=foobar
>
> Into this URL:
>     http://www.foobar.com/product_category.php?top_cat_id=22&source=foobar
>
> However, it doesn't get the data after the source= parameter.
>
> It all works fine if I do this:
>     RewriteRule ^/product_category/([0-9]+)
> /product_category.php?top_cat_id=$1
>
> So, it seems there something no right trying retrieve parameters after
> .html extension?

If you look in the docs for RewriteRule, you'll see a special box
discussing the query string.  It tells you that RewriteRule doesn't
match against the query string.  You need a RewriteCond to do that. 
In your particular case, it seems like all you want is to copy the
query string to the new url and add something else.  In that case, the
[QSA] options (for Query String Append) is all you need:
RewriteRule ^/product_category/([0-9]+)\.html
/product_category.php?top_cat_id=$1 [QSA]

Joshua.

---------------------------------------------------------------------
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


Mime
View raw message