Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

RewriteRule that preserves GET parameters

What is wrong with this rewrite rule?

RewriteRule ^api/(.+)$ api/index.php?url=$1 [L]

I simply want "index.php?url=" to be added after api/ and before the rest of the get parameters.

api/image/upload&arg1=1&text=lorem+ipsum

to

api/index.php?url=image/upload&arg1=1&text=lorem+ipsum

What is wrong with (.+) to get everything after api/?

like image 497
tirithen Avatar asked Jul 23 '10 19:07

tirithen


1 Answers

The regex on the RewriteRule is only run against the path part of the URL, not the query parameters. Fortunately there is the [QSA] flag to preserve existing query parameters.

like image 142
hobbs Avatar answered Oct 18 '22 05:10

hobbs