Nginx-ru mailing list archive (nginx-ru@sysoev.ru)
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: ngx_http_rewrite_module и фай лы с пробел ами
On Thu, 4 Dec 2008 12:56:23 +0300, Sergey Egorov <esvesv@xxxxxxxxx> wrote:
> Hi!
>
> Имеем вот такой запрос:
>
> http://somesite.com/catalogue/images/PGF800%202.jpg
>
> Задача: переписать URI, если файл есть на
> диске в другом каталоге (к примеру /site/
> clients/c81e728d9d4c2f636f067f89cc14862c)
>
> Конфиг:
>
> root /home/user/domains/site.com/public_html;
> #если есть файл в обычном месте -
> выходим сразу
> if (-f $request_filename) {
> break;
> }
> if ($request_filename ~ ^/home/user/domains/site.com/public_html(.*)
> $) {
> set $test /site/clients/c81e728d9d4c2f636f067f89cc14862c$1;
> }
> #тут поставил !-f чтобы была возможность
> видеть лог, по идее тут -f
> if (!-f $document_root$test) {
> rewrite ^(.*)$ $test break;
> }
>
> Лог:
>
> 2008/12/04 00:08:04 [notice] 14088#0: *47 "^/home/user/domains/
> site.com/public_html(.*)$" matches "/home/user/domains/site.com/
> public_html/catalogue/images/PGF800 2.jpg", client: 88.85.170.161,
> server: www.site.com, request: "GET /catalogue/images/PGF800%202.jpg
> HTTP/1.1", host: "site.com"
> 2008/12/04 00:08:04 [notice] 14088#0: *47 "^(.*)$" matches "/catalogue/
> images/PGF800 2.jpg", client: 88.85.170.161, server: www.site.com,
> request: "GET /catalogue/images/PGF800%202.jpg HTTP/1.1", host:
> "site.com"
> 2008/12/04 00:08:04 [notice] 14088#0: *47 rewritten data: "/site/
> clients/c81e728d9d4c2f636f067f89cc14862c/catalogue/images/
> PGF800%202.jpg", args: "", client: 88.85.170.161, server:
> www.site.com, request: "GET /catalogue/images/PGF800%202.jpg HTTP/
> 1.1", host: "site.com"
> 2008/12/04 00:08:04 [error] 14088#0: *47 open() "/home/user/domains/
> site.com/public_html/site/clients/c81e728d9d4c2f636f067f89cc14862c/
> catalogue/images/PGF800%202.jpg" failed (2: No such file or
> directory), client: 88.85.170.161, server: www.site.com, request:
> "GET /catalogue/images/PGF800%202.jpg HTTP/1.1", host: "site.com"
>
> Пробовал все последние версии nginx 0.5.37,
> 0.6.33, 0.7.24 - результат тот же.
>
> Что делать? :(
>
> Best regards
> Sergey Egorov
>
У Вас тут
> if ($request_filename ~ ^/home/user/domains/site.com/public_html(.*)
> $) {
> set $test /site/clients/c81e728d9d4c2f636f067f89cc14862c$1;
> }
явно наблюдается пробел перед $
|