首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在Nginx上限制WordPress管理员wp-login.php

问如何在Nginx上限制WordPress管理员wp-login.php
EN

Stack Overflow用户
提问于 2012-10-09 15:58:24
回答 4查看 5.5K关注 0票数 1

如何使用Nginx Config限制WordPress wp-login.php被公众访问。

我知道如何使用htaccess限制访问,但如何在Nginx上进行限制?

这是我尝试过的配置。

代码语言:javascript
复制
location /wp-login.php {
       auth_basic            "Restricted";
       auth_basic_user_file  /var/www/example.com/.htpasswd;
}

当我访问wp-admin时,可以下载整个wp-login.php文件。

有什么建议吗?

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2013-07-13 01:15:45

我发现如果我不能准确地匹配文件名,它就能正常工作。

最终对我起作用的是:

代码语言:javascript
复制
location ~* (wp-login)\.php$ {
    auth_basic            "Restricted Area: WordPress";
    auth_basic_user_file  /home/path/to/passwords/.htpasswd;
}

这个设置阻止了我的浏览器下载登录文件并将其解析为PHP。

票数 1
EN

Stack Overflow用户

发布于 2014-11-05 22:00:22

这对我很有效-注意location ~* 没有使用

代码语言:javascript
复制
location ^~ /wp-login.php {
    auth_basic            "Restricted Area: WordPress";
    auth_basic_user_file  /home/path/to/passwords/.htpasswd;
}

当然,这是对location /wp-admin的补充。

我相信这是因为~* (第4位)在Nginx search order中比^~ (第2位)更低。

我确实想知道是否在另一个包含文件中的登录块的存在导致wp- location ~ \.php$块被忽略(总是值得检查您的主配置文件),但看起来不是这样的,并且重新排序文件对于这两种模式都没有影响。

票数 4
EN

Stack Overflow用户

发布于 2012-10-09 21:07:38

您需要auth basic模块:

我认为您只能将其应用于目录:

代码语言:javascript
复制
location /wp-admin {
       auth_basic            "Restricted";
       auth_basic_user_file  /var/www/example.com/.htpasswd;
}

这只有在安装了apache工具的情况下才有效,如果没有,请查看以下内容:http://wiki.nginx.org/Faq#How_do_I_generate_an_htpasswd_file_without_having_Apache_tools_installed.3F

第二点;)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12795398

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档