403 error logging

B.R. reallfqq-nginx at yahoo.fr
Thu Jun 26 18:22:48 UTC 2014


I recently stumbled into a situation where I could not seem to find a way
of disabling unwanted errors being logged.

location / {
    try_files $uri $uri/ @https;

location @https {
    return 301 https://$host$request_uri;

That works well for locations like '/foo' where it falls back to https

However, when accessing root location '/', the '$uri/' part of the
try_files directive produces a 403 'directory index [...] is forbidden'.

I thought that adding 'error_page 403 @https;' to the prefix location would
override it, but no.

I also tried to use 'error_page 403 = @https;' to pass error processing to
the named location, hoping for the 301 redirection would cancel it.
Of course, that did not happen. ^^

Here are the solutions I envision, though none of them satisfy me:
1°) Using 'autoindex on;' in the prefix location: that is not the wanted
2°) Using 'try_files $uri @https;' in the prefix location would avoid
directory existence try... Although display of location /test if test is an
existing directory won't happen and fallback to he HTTPS server will occur.
That is not the wanted behavior
3°) Using 'error_page 403 = @https;' in the prefix location, then use
'error_log /dev/null;' in the named one, but that looks ugly, more like a
Moreover, it does not seem to work.

What to do then?

Since it seems I cannot prevent 403 to spawn out of the prefix location, is
there a way to send it to the named one and then trap it/ignore it there?

*B. R.*
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx/attachments/20140626/af7cc6cb/attachment.html>

More information about the nginx mailing list