httpd-users mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Clodoaldo Pinto Neto <clodoaldo.pi...@gmail.com>
Subject Re: [users@httpd] Query string encoding
Date Thu, 09 Apr 2009 13:47:39 GMT
2009/4/8 Igor Cicimov <icicimov@gmail.com>:
> Just an idea ... have you tried putting the hexadecimal representation of
> the "+" symbol so apache translates it into "+" when encoding?

I want all the urls to be human readable.

Regards, Clodoaldo

>
> On Wed, Apr 8, 2009 at 11:19 PM, Clodoaldo Pinto Neto
> <clodoaldo.pinto@gmail.com> wrote:
>>
>> 2009/4/7 Clodoaldo Pinto Neto <clodoaldo.pinto@gmail.com>:
>> > 2009/4/3 André Warnier <aw@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-unsubscribe@httpd.apache.org
>> >>  "   from the digest: users-digest-unsubscribe@httpd.apache.org
>> >> For additional commands, e-mail: users-help@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-unsubscribe@httpd.apache.org
>>   "   from the digest: users-digest-unsubscribe@httpd.apache.org
>> For additional commands, e-mail: users-help@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-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