Nginx Basic Auth и подпапки

У меня проблема с вложенными папками в базовой папке с авторизацией. В защищенной папке у меня есть папка с именем 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 работает без проблем.

1
задан 28 May 2013 в 22:42

1 ответ

По сути, вы должны сделать это так: (псевдокод, извините)

location /administration/ {
    <auth_stuff here>
    location ~ \.php {
        <php inside auth here>
    }
}

Это потому, что аутентификация влияет только на местоположение, в котором она находится.

Полагаю, вы могли бы попробовать удалить ^~ (что говорит nginx прекратить поиск, чтобы местоположение php никогда не совпадало с этим каталогом) и посмотреть, требует ли он аутентификации, несмотря на то, что он явно не требуется в блоке PHP. Это, вероятно, не будет ...

Не связано, но, пожалуйста, также прочитайте http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP

0
ответ дан 28 May 2013 в 22:42

Другие вопросы по тегам:

Похожие вопросы: