如何使用Nginx Config限制WordPress wp-login.php被公众访问。
我知道如何使用htaccess限制访问,但如何在Nginx上进行限制?
这是我尝试过的配置。
location /wp-login.php {
auth_basic "Restricted";
auth_basic_user_file /var/www/example.com/.htpasswd;
}当我访问wp-admin时,可以下载整个wp-login.php文件。
有什么建议吗?
发布于 2013-07-13 01:15:45
我发现如果我不能准确地匹配文件名,它就能正常工作。
最终对我起作用的是:
location ~* (wp-login)\.php$ {
auth_basic "Restricted Area: WordPress";
auth_basic_user_file /home/path/to/passwords/.htpasswd;
}这个设置阻止了我的浏览器下载登录文件并将其解析为PHP。
发布于 2014-11-05 22:00:22
这对我很有效-注意location ~* 没有使用
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$块被忽略(总是值得检查您的主配置文件),但看起来不是这样的,并且重新排序文件对于这两种模式都没有影响。
发布于 2012-10-09 21:07:38
您需要auth basic模块:
我认为您只能将其应用于目录:
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
第二点;)
https://stackoverflow.com/questions/12795398
复制相似问题