Welcome! Log In Create A New Profile

Advanced

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

Dmitriy Lyalyuev
December 03, 2012 03:02AM
Добрый день.

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

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@nginx.org
http://mailman.nginx.org/mailman/listinfo/nginx-ru
Subject Author Posted

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

Dmitriy Lyalyuev December 03, 2012 03:02AM

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

pioneer December 03, 2012 04:44AM

Re: auth basic и неавторизованные пользователи

Dmitriy Lyalyuev December 03, 2012 05:04AM

Re: auth basic и неавторизованные пользователи

Dmitriy Lyalyuev December 03, 2012 06:56AM

Re: auth basic и неавторизованные пользователи

Dmitriy Lyalyuev December 03, 2012 08:34AM



Sorry, only registered users may post in this forum.

Click here to login

Online Users

Guests: 159
Record Number of Users: 8 on April 13, 2023
Record Number of Guests: 421 on December 02, 2018
Powered by nginx      Powered by FreeBSD      PHP Powered      Powered by MariaDB      ipv6 ready