Just an idea ... have you tried putting the hexadecimal representation of the "+" symbol so apache translates it into "+" when encoding?
On Wed, Apr 8, 2009 at 11:19 PM, Clodoaldo Pinto Neto < clodoaldo.pi...@gmail.com> wrote: > 2009/4/7 Clodoaldo Pinto Neto <clodoaldo.pi...@gmail.com>: > > 2009/4/3 André Warnier <a...@ice-sa.com>: > >> 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 could not make the internal escape function work for me. So I used > > an external rewriting program. If someone is interested this is it: > > > > #!/usr/bin/env python > > > > from sys import stdin as si > > from sys import stdout as so > > from urllib import quote > > > > linha = si.readline() > > si.flush > > while linha: > > so.write(quote(linha, '/\n')) > > so.flush() > > linha = si.readline() > > si.flush() > > Flushing input makes no sense to me so I deleted them and it still > works. If I'm wrong please comment. > > Regards, Clodoaldo > > > > > Then in httpd.conf: > > > > RewriteMap escape_url prg:/home/carroarodo/escape_url.py > > RewriteRule ^(.*)$ ${escape_url:$1} > > > > Regards, Clodoaldo > > > >> > >> 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. > >> > >> --------------------------------------------------------------------- > >> 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-unsubscr...@httpd.apache.org > >> " from the digest: users-digest-unsubscr...@httpd.apache.org > >> For additional commands, e-mail: users-h...@httpd.apache.org > >> > >> > > > > --------------------------------------------------------------------- > 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-unsubscr...@httpd.apache.org > " from the digest: users-digest-unsubscr...@httpd.apache.org > For additional commands, e-mail: users-h...@httpd.apache.org > >