Nginx基本授权和子文件夹


Nginx Basic Auth and subfolders

我在基本授权保护文件夹中的子文件夹中有一个问题。在受保护的文件夹中我有一个名为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在基本授权保护子文件夹?

您可以在/administration/块中重复location ~ '.php$块。

作为一种解决方案,我也成功地使用了这个设置,它使我不必在复杂的场景中一遍又一遍地重复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/