Thanks Massimo for the reply ,

I tried with the comma at the end but no luck :(

I traced it back to the code where it was giving a 400 and found that its
not able to match the regular expression in
rewrite.py function regex_url_in line 542 , The regular expression for this
is

regex_url = re.compile(r'''
     (^(                                  # (/a/c/f.e/s)
         /(?P<a> [\w\s+]+ )               # /a=app
         (                                # (/c.f.e/s)
             /(?P<c> [\w\s+]+ )           # /a/c=controller
             (                            # (/f.e/s)
                 /(?P<f> [\w\s+]+ )       # /a/c/f=function
                 (                        # (.e)
                     \.(?P<e> [\w\s+]+ )  # /a/c/f.e=extension
                 )?
                 (                        # (/s)
                     /(?P<r>              # /a/c/f.e/r=raw_args
                     .*
                     )
                 )?
             )?
         )?
     )?
     /?$)
     ''', re.X)

now it has \w which means it checks only for [A-Za-z0-9_] so a - or space
will not be matched leading to 400 . I am using a workaround of replacing
space/hyphens with underscore for now

Thanks
-Syed

On Sun, May 1, 2011 at 11:44 AM, Massimo Di Pierro <
massimo.dipie...@gmail.com> wrote:

> yes
>
> routes_in = (( r'/$id/$name' , r'/app/default/view/$id/$name'), )
> routes_out = ( ( r'/app/default/view/$id/$name' , r'/$id/$name'), )
>
> the extra comma at the end. ;-)
>
>
>
> On May 1, 12:58 am, Syed Mushtaq <syed1.mush...@gmail.com> wrote:
> > Hi ,
> >
> > I was using rewrite for making the URL reader friendly . When I use a
> space
> > or hypen in the URL instead of passing it to the controller , it gives an
> > invalid request .
> >
> > I have configured the routes as follows
> >
> > routes_in = (( r'/$id/$name' , r'/app/default/view/$id/$name') )
> >
> > routes_out = ( ( r'/app/default/view/$id/$name' , r'/$id/$name') )
> >
> > Is there something I am missing ?
> >
> > Thanks
> > -Syed
>

Reply via email to