On Fri, Apr 3, 2009 at 9:15 AM, André Warnier <aw@xxxxxxxxxx> wrote: > Clodoaldo Pinto Neto wrote: >> >> I want to rewrite a url to a query string like this: >> >> from http://example.com/x+ to http://example.com/var=x%2B >> or >> from http://example.com/x%2B to http://example.com/var=x%2B >> >> Using: >> RewriteRule ^(/([\w-()+]+))?/$ /?var=$2 [QSA] >> >> The problem i have is that the query string is passed to the >> application unencoded so the "+" is understood by the application as >> space. How to reencode the query string before it is passed to the >> application? >> > Hi. > I don't really know why precisely, but I have a bad feeling about the above, > in the sense that an initial URL like you show two examples above may lead > to trouble at some point. > > But assuming you insist.. > > You may want to lookup this page : > http://httpd.apache.org/docs/2.2/mod/mod_rewrite.html > in the following sections : > Internal Function (escape) > or > External Rewriting Program > > I have never used them, and I am not sure they allow to create the > query-string part of the rewritten request. > But it's worth trying out. > Otherwise, mod_perl would be your friend. > For one thing, I don't think the leading slash is needed in the regex. Also, I am not sure that the mod_rewrite regular expression engine supports "\w" you might need to do [A-Za-z]+ or something like that. Check out the docs for mod_rewrite and the cheat sheet here is also useful: http://www.addedbytes.com/download/mod_rewrite-cheat-sheet-v2/png/ --------------------------------------------------------------------- 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@xxxxxxxxxxxxxxxx " from the digest: users-digest-unsubscribe@xxxxxxxxxxxxxxxx For additional commands, e-mail: users-help@xxxxxxxxxxxxxxxx