ПРОЕКТЫ 


  АРХИВ 


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: Проблема с index i ndex.html и rewrite



On Fri, Aug 15, 2008 at 04:09:52PM +0400, Владислав Комиссаров wrote:

> Ситуация следующая.
> 
> server {
> ...
>   set $srv_root  /var/www/domain.ru/htdocs;
> ...
> 
>   location / {
>     root $srv_root;
>     index index.html;
> 
>     if (!-f $request_filename){
>         rewrite (.*) /index2.html;
>     }
>   }
> 
>   location /public/ {
>       root $srv_root;
>   }
> }

Зачем статичный root определять через переменные ?

> При таком конфиге, я ожидаю что при запросе http://www.domain.ru/ будет
> произведен внутренний редирект на /index.html, который не попадет в !-f
> $request_filename и сервер отдаст клиенту /var/www/
> domain.ru/htdocs/index.html, но вместо этого клиенту отдается index2.html
> 
> Есть предположение, что при внутреннем редиректе на /index.html в
> $request_filename остается "/".

if (!-f $request_filename) выполняется раньше поиска index.html для /.

Не нужно использовать "if (!-f $request_filename)" !
Не нужно использовать "if (!-f $request_filename)" !
Не нужно использовать "if (!-f $request_filename)" !

Не нужно!

    root /var/www/domain.ru/htdocs;

    location / {
        index  index.html;
        error_page  404 = /index2.html;
    }



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



 




Copyright © Lexa Software, 1996-2009.