ngx_http_rewrite_module и файлы с пробелами

Александр aleksandr at kobychenko.ru
Thu Dec 4 14:08:16 MSK 2008


On Thu, 4 Dec 2008 12:56:23 +0300, Sergey Egorov <esvesv at gmail.com> 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;
> }
явно наблюдается пробел перед $





More information about the nginx-ru mailing list