Your PCRE is not right. You might interpret it in more 'natural' language as: <start>/api/app/<anything but '/'>/<anything but '/'>/<anything but '/' or nothing><end> The URI /api/app/login does not match it.
You have several ways of addressing that: - Rewrite you huge, do-it-all PCRE, adding optional, non-capturing groups - Split the rewriting rule in several versions, each addressing one depth level (eases readibility/maintenance/performance?) I would also suggest you avoid using rewrite and replace it with location/return as much as you could: https://youtu.be/YWRYbLKsS0I --- *B. R.* On Mon, Jul 13, 2015 at 12:17 PM, Ben <[email protected]> wrote: > Hi, > > Am suffering with a bit of writer's block when it comes to query rewrites. > > I've got a rewrite rule that looks like : > > rewrite ^/api/app/([^/]+)/([^/]+)/([^/]+)?$ /api/app/$1.php?p=$2&q=$3? > last; > > I am having two problems : > > - I am getting 404 when I try to make a POST call to /api/app/login, I > have to use the full suffix, i.e. api/app/login.php instead. > > - I want to make the last ([^/]+) optional, but seem to also be getting > the same 404 if I forget to include it ? > > Ideas most welcome, thanks ! > > _______________________________________________ > nginx mailing list > [email protected] > http://mailman.nginx.org/mailman/listinfo/nginx >
_______________________________________________ nginx mailing list [email protected] http://mailman.nginx.org/mailman/listinfo/nginx
