У меня проблема с вложенными папками в базовой папке с авторизацией. В защищенной папке у меня есть папка с именем phpmyadmin, которая содержит phpmyadmin. Я не могу запустить phpmyadmin, когда активирован basic. Когда я вызываю папку, я получаю диалоговое окно сохранения как (тип: application / octet-stream (18,3 KB)).
Здесь важные части mysites-available / default
location ^~ /administration/ {
auth_basic "Restricted Area";
auth_basic_user_file /var/www/myproject/sec/htpasswd;
}
location ~ \.php$ {
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
Любые идеи, как я могу запустить php в подпапках, защищенных basic-auth?
Редактировать: без basic_auth phpmyadmin работает без проблем.
По сути, вы должны сделать это так: (псевдокод, извините)
location /administration/ {
<auth_stuff here>
location ~ \.php {
<php inside auth here>
}
}
Это потому, что аутентификация влияет только на местоположение, в котором она находится.
Полагаю, вы могли бы попробовать удалить ^~
(что говорит nginx прекратить поиск, чтобы местоположение php никогда не совпадало с этим каталогом) и посмотреть, требует ли он аутентификации, несмотря на то, что он явно не требуется в блоке PHP. Это, вероятно, не будет ...
Не связано, но, пожалуйста, также прочитайте http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP