wordpress - Nginx 忽略 WordPress 登录目录的 HTTP 身份验证

标签 wordpress http authentication nginx

我在我的域的子文件夹中运行 WordPress,以便在 VPS LEMP 堆栈上进行测试和开发。为了使用 etxra 层对 wp-login.php 进行密码保护,我对 wp-admin 文件夹使用了 HTTP 身份验证。

问题是http认证被忽略了。当 wp-login.php 或 wp-admin-folder 被调用时,它直接进入正常的 WordPress 登录。

我通过以下方式从命令行安装了所有内容:

sudo apt-get install apache2-utils

sudo htpasswd -c /var/www/bitmall/wp-admin/.htpasswd exampleuser

New password:
Re-type new password:
Adding password for user exampleuser

我的 Nginx 配置文件如下所示:

server {
    listen   80;


    root /var/www;
    index index.php index.html index.htm;

    server_name eample.com;

    location / {
            try_files $uri $uri/ /index.html;
    }

location /bitmall/wp-admin/ {
    auth_basic "Restricted Section";
    auth_basic_user_file /var/www/bitmall/wp-admin/.htpasswd;
}

location ~ /\.ht {
    deny all;
}   

    error_page 404 /404.html;

    error_page 500 502 503 504 /50x.html;
    location = /50x.html {
          root /var/www;
    }

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    location ~ \.php$ {
            try_files $uri =404;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;

    }

}

我已经尝试按照这个 question 更改 nginx 配置:

location ~* (wp-login)\.php$ {
            auth_basic            "Restricted Area";
            auth_basic_user_file  /var/www/bitmall/.htpasswd;
    }

此代码将调用 http 身份验证,但浏览器会在输入凭据后下载 wp-login.php,而不是转到主登录屏幕。

你能告诉我如何解决这个问题吗?

最佳答案

问题是旧位置 block 不会将 PHP 配置传递给新 block ,因此不会处理 PHP 请求。以下解决了这个问题:

location ~* /wp-login.php {
            auth_basic "Restricted Area";
            auth_basic_user_file PATH TO .htpasswd;

            try_files $uri =404;
            fastcgi_pass unix:/var/run/php5-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
            include fastcgi_params;
    }

关于wordpress - Nginx 忽略 WordPress 登录目录的 HTTP 身份验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21312527/

相关文章:

Tomcat7 Manager App认证问题

php - 从插件将数据添加到 WordPress 上的 MySQL 表时出错

java - 如何在 Java 中为异常创建自定义 HTTP 错误代码?

java - 使用异步任务上传文件时出现 Android 错误

http - 程序在执行 GET 请求时连续超时后停止

authentication - 确定当前用户(Gmail上下文小工具)

java - 套接字认证服务器?

wordpress - 链接到显示所有帖子的存档页面

javascript - 如何在另一个选项卡中打开外部链接?

php - 在所有 Woocommerce 电子邮件通知中更改 "reply to"电子邮件地址