Базовая аутентификация Nginx и вложенные папки


У меня проблема с вложенными папками в основной папке с проверкой подлинности. В защищенной папке у меня есть папка с именем phpmyadmin, которая содержит phpmyadmin. Я не могу запустить phpmyadmin, когда активирован basic. Когда я вызываю папку, я получаю диалоговое окно сохранения как (тип: приложение/октетный поток (18,3 КБ)).

Здесь важные части mysites - доступны/по умолчанию

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 в подпапках, защищенных базовой аутентификацией?

Author: mr_app, 2013-05-27

1 answers

Вы можете просто повторить блок location ~ \.php$ внутри блока /administration/.

В качестве обходного пути я также успешно использовал эту настройку, что избавляет меня от многократного повторения конфигурации PHP в сложных сценариях.

location ^~ /administration/ {
    auth_basic            "Restricted Area";
    auth_basic_user_file  /var/www/myproject/sec/htpasswd;
    location ~ \.php$ {
        try_files /dummy/$uri @php;
   }
}

location ~ \.php$ {
    try_files /dummy/$uri @php;
}

location @php {
    fastcgi_pass unix:/var/run/php5-fpm.sock;
    fastcgi_index index.php;
    include fastcgi_params;
}

В основном он использует именованное местоположение для конфигурации PHP. К сожалению, вы не можете использовать такое местоположение везде. Но это работает с try_files. Вы должны убедиться, что на вашем сервере нет каталога /dummy/.

 6
Author: Michael Härtl, 2013-07-11 13:04:38