Я хочу иметь неограниченный доступ к одному из моих контроллеров в CakePHP.Ниже приведена конфигурация, которую я использую, к сожалению, при попытке myhost.com/my_controller/my_action все еще требуются учетные данные.Не должен / my_controller / my_action соответствовать location ^ ~ / my_controller / my_action вместо location ~ .php $ ?
Из того, что я понимаю из здесь это должно быть.
Я пытался включить вышеуказанный трюк с if ($ request_uri ~ * / phpmyadmin) , но я полагаю, auth_basic не разрешен в IF, перезапуская nginx: [emerg]: директива «auth_basic» здесь недопустима).
Я также пытался сопоставить переписанное местоположение, т.е. location /index.php?q=/my_controller/my_action {, но безУспех.
Точный оператор "=" тоже не работает, думаю, из-за переписывания.То же самое с "~".
В идеале решение должно быть достаточно универсальным, чтобы использовать его и с другими контроллерами.
server {
root
index
rewrite ^(.+)$ /index.php?q=$1 last;
location ^~ /my_controller/my_action {
auth_basic off;
fastcgi_pass
fastcgi_index
fastcgi_param
include
}
location ~ \.php$ {
auth_basic "Restricted";
auth_basic_user_file
fastcgi_pass
fastcgi_index
fastcgi_param
include
}
}