ПРОЕКТЫ 


  АРХИВ 


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]

auth_basic и неавторизованные пользователи


  • To: nginx-ru@xxxxxxxxx
  • Subject: auth_basic и неавторизованные пользователи
  • From: Dmitriy Lyalyuev <dmitriy@xxxxxxxxxxxxxx>
  • Date: Mon, 03 Dec 2012 10:01:21 +0200
  • Dkim-signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=lyalyuev.pp.ua; s=mail; h=message-id:date:from:user-agent:mime-version:to:subject :content-type:content-transfer-encoding; bh=U5JKjuY5s1BeJybykjp+66Ts+NhpNFmVMBihvPFbBJ4=; b=jdYefHq1MSrYNoOpIS/GBZOHvxKtBwQx59c2HTaKo+hwyPdWzjT0cqhKMcUr2MgUEi ph/CCFHoe7wAQVKKiTDsgZguXSGQA6lWWfQWQYlmt2FZyXBZV0gbEM2z6vWhgxvLGC+U 3rlCQTj/enUwVRR+cgWCzR7XEACqIlLCXWAlM=

Добрый день.

Есть ситуация. Нужно по одному локейшену пускать как залогиненных пользователей, так и нет. При этом, если пользователь был залогинен, то выдается один контент, если нет - другой.

server {
   listen 80;
   server_name wiki.localdomain;
   root /opt/data/wiki;

   error_log /dev/null;
   access_log /dev/null;

   if ($args ~* "skin|raw|template|maxrev|minrev|currev") {
        rewrite ^(.*)$ /bin/view/$1?;
   }

   rewrite ^/bin/view(.*)$ / redirect;
   rewrite ^(/Help)$ /bin/view/Help last;
   rewrite ^/(Main|System|Sandbox|Help)(/[A-Z].*)$ /bin/view/$1$2 last;
   rewrite ^/([A-Z].*) /bin/view/Help/$1 last;
   rewrite ^/(Help)(/[A-Z].*)$ $2;
   rewrite ^/([A-Z].*) /bin/view/Help/$1 last;
   rewrite ^/$ /bin/view/Help last;


   location / {
        limit_except GET POST { deny all; }
   }

   location ~* /pub/.*\.(s?p?html?|php3?|pl|py|cgi)$ {
        types {}
        default_type application/octet-stream;
   }

   location ~ /bin/configure {
#        allow all;
        deny all;
        error_page 404 502 504 = @configure;
   }

location ~ /bin/view/(System|System/.*|Main|Main/.*|Sandbox|Sandbox/.*) { auth_basic "Enter your WikiName. (First name and last name, no space, no dots, capitalized, e.g. JohnSmith). Cancel to register if you do not have one.";
        auth_basic_user_file     /opt/data/wiki/data/.htpasswd;
        error_page 404 502 504 = @foswiki;
   }

   location ~ /bin/.* {
        error_page 404 502 504 = @foswiki;
   }

location ~ (^/pub/Trash|^/lib|^/data|^/locale|^/templates|^/tools|^/work) { deny all; }

   location @foswiki {
        gzip off;
        fastcgi_pass             unix:/var/run/wiki/fcgi.sock;
        fastcgi_split_path_info  ^(/bin/\w+)(.*);
fastcgi_param SCRIPT_FILENAME /opt/data/wiki$fastcgi_script_name;
        fastcgi_param            PATH_INFO       $fastcgi_path_info;
        fastcgi_param            SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param            AUTH_USER       $remote_user;
        fastcgi_param            REMOTE_USER     $remote_user;
        include fastcgi_params;
   }

   location @configure {
        gzip off;
        fastcgi_pass              unix:/var/run/wiki/configure.sock;
        fastcgi_split_path_info   ^(/bin/configure)(.*);
fastcgi_param SCRIPT_FILENAME /opt/data/wiki/bin/configure;
        fastcgi_param             PATH_INFO $fastcgi_path_info;
        fastcgi_param             SCRIPT_NAME $fastcgi_script_name;
        fastcgi_param             REMOTE_USER       $remote_user;
        include fastcgi_params;
   }
}

В данном случае должно работать так:
1. Пользователь заходит на /Help и видит контент, который доступен всем.
2. Пользователь, зайдя на /Main/... авторизуется, потом переходит на /Help и видит административную часть страницы.

Если в локейшин /bin/.* добавить auth_basic, то все ок, кроме того, что и у обычных пользователей начинает просить логин и пасс.

Может я как-то сложно объяснил, но сам решить проблему не могу. Помогите пожалуйста.

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


 




Copyright © Lexa Software, 1996-2009.