basic-authentication and php?

Igor Sysoev is at rambler-co.ru
Fri May 22 21:21:33 MSD 2009


On Fri, May 22, 2009 at 04:56:28PM +0100, Ian Hobson wrote:

> Hi all,
> I'm trying to set up basic authentication to protect an area of the 
> website served by php.
> 
> The critical bits of my server directive are.
> 
> server (
>   listen 80;
>   server_name  site.com  www.site.com;
>   root /var/www/site.com/htdocs;
>   index  index.php index.html index.htm;
>   access_log  /var/www/site.com/access.log;
>  
>   location ~ \.php {
>      include /etc/nginx/fastcgi_params;
>      fastcgi_pass 127.0.0.1:9000;
>   }
> 
>   location ^~ /usage/ {
>      auth_basic "Hello, Please login";
>      auth_basic_user_file /var/www/site.com/passwords;
>   }
> 
>   location ^~ /ppg/ {
>      auth_basic "Hello, Please login";
>      auth_basic_user_file /var/www/site.com/passwords;
>   }
> }
> 
> The directory /usage/ does NOT contain any php files and works just fine.
> 
> The directory /ppg/ contains index.php - which is sent to the browser, 
> not to fastcgi :(
> 
> So how can I configure it.  (If basic-auth cannot work, it would be ok 
> to use
> allow and deny all.)
> 
> I'm using nginx 0.6.35

The "/ppg/" request invokes an internel redirect to "/ppg/index.php",
which is handled in "location ^~ /ppg/", because regex testing is disabled
by "^~". You should either remove "^~":

-   location ^~ /ppg/ {
+   location /ppg/ {

or add additional

    location = /ppg/index.php {
       include /etc/nginx/fastcgi_params;
       fastcgi_pass 127.0.0.1:9000;
       auth_basic "Hello, Please login";
       auth_basic_user_file /var/www/site.com/passwords;
    }


-- 
Igor Sysoev
http://sysoev.ru/en/





More information about the nginx mailing list