web-dev-qa-db-ja.com

Nginx Basic Authとサブフォルダー

基本認証プロシージャフォルダーのサブフォルダーに問題があります。保護されたフォルダーには、phpmyadminという名前のフォルダーがあり、これにはphpmyadminが含まれています。基本が有効になっていると、phpmyadminを実行できません。フォルダーを呼び出すと、名前を付けて保存ダイアログが表示されます(タイプ: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なしでphpmyadminは問題なく実行されています。

1
mr_app

基本的には次のようにする必要があります:(擬似コード、申し訳ありません)

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

これは、認証がその場所にのみ影響するためです。

^~(nginxに検索を停止するように指示するため、phpの場所はそのディレクトリに一致しない)を削除して、PHPブロック。おそらく….

無関係ですが、こちらもお読みください http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP

1
frostschutz