Am suffering with a bit of writer’s block when it comes to query
I’ve got a rewrite rule that looks like :
rewrite ^/api/app/([^/]+)/([^/]+)/([^/]+)?$ /api/app/$1.php?p=$2&q=$3?
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 !
Your PCRE is not right. You might interpret it in more ‘natural’
/api/app/<anything but ‘/’>/<anything but ‘/’>/<anything but ‘/’
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
- Split the rewriting rule in several versions, each addressing one
level (eases readibility/maintenance/performance?)
I would also suggest you avoid using rewrite and replace it with
location/return as much as you could: