Hi,
So with my first rewrite issue solved I now move closer towards the real
configuration and run into a problem with the index directive.
My location looks like this:
location ~* ^/(([A-Za-z])([A-Za-z0-9])([A-Za-z0-9])[^/])(/.)?$ {
root /web;
set $site_path /users/$2/$3/$4/$1/htdocs;
set $real_uri $5;
rewrite .* $site_path$real_uri break;
}
When I request “/test/index.html” the location matches and gets properly
rewritten into a hashed form “/users/t/e/s/test/index.html”. Then the
root
get prefixed resulting in the path “/web/users/t/e/s/test/index.html”
which
get correctly delivered by nginx. So far so good.
The problem happens when I request “/test/” instead which should deliver
the same index.html through the index directive. That doesn’t happen
though.
Looking at the log what seems to happen is that nginx sees that
“/web/users/t/e/s/test/” is a directory and issues a new request with
the
uri “/web/users/t/e/s/test/index.html”. This however matches the above
location again resulting in another rewrite that ends with a completely
broken path and a 404.
How can I get that the correct index processing for the first correctly
rewritten path without triggering another round of location processing
messing things up?
Regards,
Dennis