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
|