проблема с rewrite

Иван Мишин simplebox66 at gmail.com
Fri Jun 19 10:17:46 UTC 2015


ДОбрый день!

Есть вот такой локейшн
 location @delete_handler {
        internal;

        open_file_cache off;
        if (-d $webdav_root/$uri) { # Add trailing slash to dirs.
        rewrite ^(.*[^/])$ $1/;
        }
        root            $webdav_root;
        dav_methods     DELETE;
}

По смыслу if должен дописывать слеш в конец запроса.

Логи:
2015/07/20 13:14:52 [notice] 12620#0: *10967 "^(.*[^/])$" matches
"/Family/test", client: 192.168.200.94, server: 192.168.200.92, request:
"DELETE /Family/test HTTP/1.1", host: "192.168.200.92"
2015/07/20 13:14:52 [notice] 12620#0: *10967 rewritten data:
"/Family/test/", args: "", client: 192.168.200.94, server: 192.168.200.92,
request: "DELETE /Family/test HTTP/1.1", host: "192.168.200.92"

==> /var/log/nginx/webdav2_access.log <==
192.168.200.92 192.168.200.94 - [20/Jul/2015:13:14:52 +0300] "DELETE
/Family/test HTTP/1.1" 598 "-" 0 "-" "curl/7.19.7 (x86_64-redhat-linux-gnu)
libcurl/7.19.7 NSS/3.16.2.3 Basic ECC zlib/1.2.3 libidn/1.18 libssh2/1.4.2"
"-" 0.000 "-" NGINX-CACHE-- "-"

==> /var/log/nginx/error.log <==
2015/07/20 13:14:52 [info] 12620#0: *10967 client 192.168.200.94 closed
keepalive connection


Соответственно в еррор логе видно что произошло совпадение ^(.*[^/])$"
matches "/Family/test" и поэтому имел место рерайт rewritten data:
"/Family/test/", но почему в access логах  "DELETE /Family/test HTTP/1.1"
слеш в конец не добавился?
как решить проблему добавления слеша в конец?
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.nginx.org/pipermail/nginx-ru/attachments/20150619/16bfae51/attachment-0001.html>


Подробная информация о списке рассылки nginx-ru