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 <
[email protected]> 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 <[email protected]> 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
>