Re: проблема с rewrite

Иван Мишин simplebox66 at gmail.com
Tue Jun 23 10:05:52 UTC 2015


Может это фича nginx ?

2015-06-19 13:17 GMT+03:00 Иван Мишин <simplebox66 at gmail.com>:

> ДОбрый день!
>
> Есть вот такой локейшн
>  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/20150623/cd9a72bb/attachment.html>


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