2 location, auth_basic, php

Igor Sysoev is at rambler-co.ru
Sun Aug 26 23:25:27 MSD 2007


On Sun, Aug 26, 2007 at 11:06:06PM +0400, Alexey Rymonin wrote:

> Подскажите плз...  нужно ограничить доступ на /admin/*
> и сделно в конфиге пишу следующее:
> 
>         location /admin/ {
>                 auth_basic            "Admin zone";
>                 auth_basic_user_file  /...../admin/.htpasswd;
>         }
> 
>         ...
>         
>         location ~ .php$ {
>                 fastcgi_pass   127.0.0.1:9000;
>                 fastcgi_index  index.php;
> 
>                 fastcgi_intercept_errors  on;
> 
>                 fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
>                 fastcgi_param  QUERY_STRING     $query_string;
>                 fastcgi_param  REQUEST_METHOD   $request_method;
>                 fastcgi_param  CONTENT_TYPE     $content_type;
>                 fastcgi_param  CONTENT_LENGTH   $content_length;
>         }  
> 
> И в результате получаю следующую проблем, что при обращении в странице
> /admin/pupkin.php пароля уже не надо... так как на него исполняется
> другой location ... поставить ^~ в первой я не могу, поскольку тогда
> не будут обрабатываться php....
> Подскажите плз, как легко обойти эту траблу?

Описать ещё один location:

         location ~ ^/admin/.+\.php$ {

Кроме того, можно использовать вложенные location'ы, (но он
пока недокументирован, так как некоторые команды неверно работают):

         location ~ .php$ {

             location /admin/ {
                 auth_basic            ...
                 auth_basic_user_file  ...
                 fastcgi_pass          ...
             }

             fastcgi_pass          ...
             ...
        }


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





More information about the nginx-ru mailing list