ПРОЕКТЫ 


  АРХИВ 


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: Nginx редиректит (301) с добавлением слэша



Hello!

On Wed, Jun 26, 2013 at 03:33:19AM -0400, wilful wrote:

> Спасибо за ответы. Привожу пример всего конфига. Бакэнд в данном случа я
> отключил вообще (в первом сообщении 404 это ошибка о том, что не найден
> индекс заглушки, но редирект происходит раньше)

[...]

> В апач есть директива отключения таких редиректов, как можно поступить в
> случае nginx, чтобы обработка папки передавалась на бакэнд?

Нужно явно обрабатывать запросы к каталогам без "/" на конце.  
Например как-то так можно передать обработку всех каталогов на 
бекенд:

    location / {
        # only _files_ are handled here, directories and 
        # non-existent uris will go to @directory location

        try_files $uri @directory;
    }

    location @directory {
        try_files $uri/ =404;
        proxy_pass http://backend;
    }

А если к вышеприведённому конфигу ещё добавить что-нибудь вроде

    location ~ /$ {
        # if an uri ends with "/", handle it here
    }

то на бекенд уйдут только запросы к каталогам без "/" на конце.

Алтернативные варианты конфигураций можно поискать в архивах 
рассылки, ключевые слова - trailing slash redirect.

> Если использовать error_page 404 @fetch; вместо try_files, то всё равно
> происходит редирект.

Директива try_files не имеет отношения к редиректу.  В вашем 
исходном конфиге директива try_files лишь обеспечивала обработку 
существующих каталогов модулем static nginx'а.

-- 
Maxim Dounin
http://nginx.org/en/donation.html

_______________________________________________
nginx-ru mailing list
nginx-ru@xxxxxxxxx
http://mailman.nginx.org/mailman/listinfo/nginx-ru


 




Copyright © Lexa Software, 1996-2009.