ПРОЕКТЫ 


  АРХИВ 


Apache-Talk @lexa.ru 

Inet-Admins @info.east.ru 

Filmscanners @halftone.co.uk 

Security-alerts @yandex-team.ru 

nginx-ru @sysoev.ru 


  СТАТЬИ 


  ПЕРСОНАЛЬНОЕ 


  ПРОГРАММЫ 



ПИШИТЕ
ПИСЬМА












     АРХИВ :: nginx-ru
Nginx-ru mailing list archive (nginx-ru@sysoev.ru)

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: bugs: try_files & if, add_header



On Fri, Oct 16, 2009 at 05:31:23PM +0400, Aleksander wrote:

> Здравствуйте.
> Есть пару проблем. 
> 
> Первая: не совсем работает try_files.
> 
> Есть такие файлы:
> % find /tmp/test -type f
> /tmp/test/hot/file2.txt
> /tmp/test/file1.txt
> 
> И такой конфиг:
> 
>     server {
>         listen 99;
>         root /tmp/test;
>         location / {
>             try_files /hot$uri $uri =404;
>         }
>     }
> 
> На оба файла отдает нормальный ответ:
> 
> HEAD /file1.txt HTTP/1.0
> 
> HTTP/1.1 200 OK
> Server: nginx/0.8.19
> Date: Fri, 16 Oct 2009 13:12:21 GMT
> Content-Type: text/plain
> Content-Length: 6
> Last-Modified: Fri, 16 Oct 2009 12:55:07 GMT
> Connection: close
> Accept-Ranges: bytes
> 
> 
> HEAD /file2.txt HTTP/1.0
> 
> HTTP/1.1 200 OK
> Server: nginx/0.8.19
> Date: Fri, 16 Oct 2009 13:14:06 GMT
> Content-Type: text/plain
> Content-Length: 7
> Last-Modified: Fri, 16 Oct 2009 12:55:24 GMT
> Connection: close
> Accept-Ranges: bytes
> 
> 
> Но как только я добавляю в конфиг проверку с regexp'ом, try_files ломается:
> 
>     server {
>         listen 99;
>         root /tmp/test;
>         location / {
>             try_files /hot$uri $uri =404;
>             if ($uri ~* \.txt$) {
> 
>             }
>         }
>     }

         location / {
             try_files /hot$uri $uri =404;
         }

         location ~ \.txt$ {
             try_files /hot$uri $uri =404;
         }


> Отдает 404 на второй файл, как будто директивы try_files вообще нет.
> 
> HEAD /file1.txt HTTP/1.0
> 
> HTTP/1.1 200 OK
> Server: nginx/0.8.19
> Date: Fri, 16 Oct 2009 13:20:32 GMT
> Content-Type: text/plain
> Content-Length: 6
> Last-Modified: Fri, 16 Oct 2009 12:55:07 GMT
> Connection: close
> Accept-Ranges: bytes
> 
> 
> HEAD /file2.txt HTTP/1.0
> 
> HTTP/1.1 404 Not Found
> Server: nginx/0.8.19
> Date: Fri, 16 Oct 2009 13:20:52 GMT
> Content-Type: text/html
> Content-Length: 169
> Connection: close
> 
> 
> И вторая проблема: add_header не работает в контексте server, 
> а только в location. 


-- 
Игорь Сысоев
http://sysoev.ru



 




Copyright © Lexa Software, 1996-2009.