Nginx中的密码保护/backoffice文件夹 [英] password protect /backoffice folder in nginx

查看:107
本文介绍了Nginx中的密码保护/backoffice文件夹的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试用密码保护名为backoffice的文件夹. 我想用密码保护该文件夹及其下面的所有内容(包括PHP文件).

I am trying to password protect a folder called backoffice. I would like to password protect the folder and everything below it (including PHP files).

我似乎无法在nginx中使用它.

I just can't seem to get it working in nginx.

我的配置当前是这样:

server {
    listen   80;
    server_name  www.example.com;
    access_log  /var/log/nginx/localhost.access.log;
    access_log off;
    client_max_body_size 50m;

    ## Default location
    location / {
        root   /var/www/clients/client3/web21/web;
        index  index.php;
    }

    ## Images and static content is treated different
    location ~* ^.+.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
      access_log        off;
      expires           30d;
      root /var/www/clients/client3/web21/web;
    }

    ## Parse all .php file in the /var/www directory
    location ~ .php$ {
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   unix:/dev/shm/fpm.sock;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/clients/client3/web21/web$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param  QUERY_STRING     $query_string;
        fastcgi_param  REQUEST_METHOD   $request_method;
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 30;
        fastcgi_send_timeout 30;
        fastcgi_read_timeout 30;
    }

    ## Disable viewing .htaccess & .htpassword
    location ~ /\.ht {
        deny all;
    }

    # Password Protect important Directories
    location ^~ /backoffice {
        root /var/www/clients/client3/web21/web;
        auth_basic            "Restricted";
        auth_basic_user_file   /var/www/clients/client3/web21/htpass;
    }
}

推荐答案

您需要将php位置块嵌套在受保护的目录块中.像这样:

You need to nest your php location block inside your protected directory block. Like this:

location ^~ /protected {
    auth_basic              "Restricted";
    auth_basic_user_file    /usr/local/nginx/conf/password;

    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9000;
        include        fastcgi.conf;
    }
}

这篇关于Nginx中的密码保护/backoffice文件夹的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆