неудобство написания auth_basic

Igor Sysoev is at rambler-co.ru
Wed May 31 15:13:23 MSD 2006


On Wed, 31 May 2006, Igor Sysoev wrote:

> On Wed, 31 May 2006, Anton Ladokha wrote:
>
>> Если я использую auth_basic и  то у меня получаются довольно грамоздкие 
>> конструкции локейшенов.
>> 
>> Допустим, хочу запаролить одну папку /admin/ :
>> 
>> location / {
>>            index  index.php;
>> }
>> location  ~ ^/admin/  {
>>                auth_basic ...
>>                index  index.php;
>> }
>> location ~* ^/admin/.+\.(php)$ {
>>                auth_basic ...
>>                fastcgi_pass ...
>> }
>> location ~* ^.+\.(php)$ {
>>                 fastcgi_pass ...
>> }
>> 
>> более простого способа нет?
>
> Я бы переписал конфигурацию так:
>
>    location / {
>        ...
>    }
>
>    location ~* ^/(?:$|.+/$|.+\.php$) {
>        fastcgi_index  index.php;
>        fastcgi_pass ...
>    }
>
>    location ~* ^/admin/(?:$|.+/$|.+\.php$) {
>        auth_basic ...
>        fastcgi_index  index.php;
>        fastcgi_pass ...
>    }
>
> Эта конфигурация в том числе решает и проблему POSTа в /.

Такое тоже должно работать:

     location / {
         ...
     }

     location ~* ^/(?:$|.+/$|.+\.php$) {
         fastcgi_index  index.php;
         fastcgi_pass ...

         location /admin/ {
             auth_basic ...
         }
     }

но хочу предупредить, что не все директивы поддерживают правильное
наследование во вложенных location'ах.


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





More information about the nginx-ru mailing list