ПРОЕКТЫ 


  АРХИВ 


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) с добавлением слэша


  • To: nginx-ru@xxxxxxxxx
  • Subject: Re: Nginx редиректит (301) с добавлением слэша
  • From: "wilful" <nginx-forum@xxxxxxxx>
  • Date: Wed, 26 Jun 2013 03:33:19 -0400
  • Dkim-signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=helium.jlkhosting.com; s=x; h=Date:Sender:From:References:In-Reply-To:Message-ID:Content-Transfer-Encoding:Content-Type:Subject:To; bh=yBz3y8VBZDy7jfNjq7eRowYp3naOFAYjieBoeA9HlPE=; b=TBgnVEZPqXRbx8BEN6gQh+JSvCI1WLMEnxDSi+I2yO1aeZP1h8HOlGArzBiFq87J7BcNNZLy4Qn1LYpyhYz9YmUIN3ISEmNU9U3CE3gAId0K7KXOhU3qWc5jGpNwj+tmbPRJuccAmFdZN+Q0+Z+N+Q7L5gDzKhdzxvzyvAZooQQ=;
  • In-reply-to: <20130625185611.GO20717@mdounin.ru>
  • References: <20130625185611.GO20717@mdounin.ru>

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

server {                                                                    
                                                                            
              
    listen 192.168.7.116:80;                                                
                                                                            
              
    server_name site.local www.site.local;                                  
                                                                            
              
                                                                            
                                                                            
              
    set $docroot      "/var/www/site.local/htdocs";                         
                                                                            
              
    set $pool         "backend";                                            
                                                                            
              
    set $poolerr      "127.0.0.1:8088";                                     
                                                                            
              
    set $app_env      "production";                                         
                                                                            
              
                                                                            
                                                                            
              
    index   index.php;                                                      
                                                                            
              
    charset windows-1251;                                                   
                                                                            
              
    root    $docroot;                                                       
                                                                            
              
                                                                            
                                                                            
              
    access_log /var/log/nginx/site.local-access.log;                        
                                                                            
              
    error_log /var/log/nginx/site.local-error.log warn;                     
                                                                            
              
    
    include /etc/nginx/conf-available/static;
                                                                            
                                                                            
          
    location @fetch {                                                       
                                                                            
              
        include /etc/nginx/conf-available/backend-httpd;                    
                                                                            
              
    }                                                                       
                                                                            
              
                                                                            
                                                                            
              
    location / {                                                            
                                                                            
              
        include /etc/nginx/conf-available/backend-httpd;                    
                                                                            
              
    }                                                                       
                                                                            
              
                                                                            
                                                                            
              
#    location / {                                                           
                                                                            
              
#        try_files $uri $uri/ @fetch;                                       
                                                                            
              
#        location ~ \.(php|php5)$ {                                         
                                                                            
              
#            include /etc/nginx/conf-available/backend-httpd;               
                                                                            
              
#            try_files $uri $uri/ @fetch;                                   
                                                                            
              
#        }                                                                  
                                                                            
              
#    }                                                                      
                                                                            
              
}     

Данный конфиг используется для обработки сайта на bitrix. 

Статика отдаётся так (/etc/nginx/conf-available/static):
location ~*
\.(ico|jpg|gif|png|htm|html|jpeg|swf|txt|avi|wmv|7z|tmp|xml|svg)$ {
    root $docroot;
    access_log off;
}

Вроде в конфигурации ничего лишнего, вложенные локейшены использовал чтобы
была общая точка входа и статика которая не подходит под шаблон выше не
попадала к бакэнду.

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

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

Maxim Dounin Wrote:
-------------------------------------------------------
> Hello!
> 
> On Tue, Jun 25, 2013 at 11:30:46AM -0400, wilful wrote:
> 
> > http://nginx.org/ru/docs/http/ngx_http_core_module.html#try_files
> > Я не нашел в описании директивы указание на 301-й редирект.
> > Не могли бы вы более подробно написать откуда он? 
> > Я только вижу что исходя из $uri/ сервер находит папку, т.е. как я
> понимаю
> > слэш тут используется для обозначения того, что ищется папка, а не
> файл.
> 
> Если для обработки запрошеного ресурса используется модуль отдачи 
> статики, и запрошенный ресурс оказывается каталогом - то nginx 
> возвращает 301 с добавлением "/".
> 
> -- 
> Maxim Dounin
> http://nginx.org/en/donation.html
> 
> _______________________________________________
> nginx-ru mailing list
> nginx-ru@xxxxxxxxx
> http://mailman.nginx.org/mailman/listinfo/nginx-ru

Posted at Nginx Forum: 
http://forum.nginx.org/read.php?21,240329,240354#msg-240354

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


 




Copyright © Lexa Software, 1996-2009.