Странности с auth_basic и реврайтом
Александр Сытар
sytar.alex на gmail.com
Пн Ноя 30 23:39:45 MSK 2009
Мог бы кто-нибудь объяснить странность поведения следующей конфигурации
(0.7.64):
location = / {
rewrite ^ /index.php$uri last;
}
location /admin {
auth_basic "Resticted Area";
auth_basic_user_file .htpasswd;
root /path/to/site/root;
* rewrite ^ /index.php$uri last # <- epic fail, входим без пароля*
**}
location / {
try_files $uri /index.php$uri;
}
/location ~* \.php$ {
fastcgi_pass backend;
}
debug log:
*
009/11/30 23:17:57 [notice] 13487#0: *25 "^" matches "/admin", client:
89.178.81.78, server: examle.ru, request: "GET /admin HTTP/1.1", host: "
www.example.ru"
2009/11/30 23:17:57 [notice] 13487#0: *25 rewritten data:
"/index.php/admin", args: "", client: 89.178.81.78, server:
example
.ru, request: "GET /admin HTTP/1.1", host: "www.
example
.ru"
*
Однако если сделать так, то всё работает как и задумывалось.
location /admin {
auth_basic "Resticted Area";
auth_basic_user_file .htpasswd;
root /path/to/site/root;
* try_files $uri /index.php$uri; # <- работает как и должно, запрос пароля.
*}
debug log:
[notice] 15504#0: *148 "^/(.*)$" matches "/admin", client: 89.178.81.78,
server: *
example
*.ru, request: "GET /admin HTTP/1.1", host: "*
example
*.ru"
2009/11/30 23:36:57 [notice] 15504#0: *148 rewritten redirect: "http://www.*
example
*.ru/admin", client: 89.178.81.78, server: 3321045.ru, request: "GET /admin
HTTP/1.1", host: "*
example
*.ru"
Как же надо по правильному это сделать?
*
--
*
Sent from Moscow, Mow, Russia
----------- следущая часть -----------
Вложение в формате HTML было извлечено…
URL: <http://nginx.org/pipermail/nginx-ru/attachments/20091130/bce1d490/attachment.html>
Подробная информация о списке рассылки nginx-ru