Nginx的基本authentication和子文件夹

我有一个基本的身份validation文件夹中的子文件夹的问题。 在受保护的文件夹中,我有一个名为phpmyadmin的文件夹,其中包含phpmyadmin。 我不能运行phpmyadmin,当基本被激活。 当我打电话给文件夹时,我得到一个另存为对话框(types: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; } 

任何想法,我怎么可以在basic-auth保护的子文件夹中运行PHP?

您可以在/administration/ block中重复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/