不幸的是我的 wp-login.php 保护不再起作用:
<Files wp-login.php>
AuthName "Forbidden access"
Require ip 1xx.xxx.xx.x/24
</Files>
这是apache的信息:
Server version: Apache/2.4.10 (Debian)
Server built: Aug 28 2015 16:28:08
错误日志未显示任何内容:-(
答案1
Apache 基本身份验证
如果您想添加身份验证:
<Location ~ "wp-login.php">
AuthName "Auth Name You Want"
AuthType Basic
AuthUserFile /opt/web/.htpasswd
Require valid-user
</Location>
或者
<Files "wp-login.php">
AuthName "Auth Name You Want"
AuthType Basic
AuthUserFile /opt/web/.htpasswd
Require valid-user
</Files>
来源:https://httpd.apache.org/docs/2.4/mod/mod_auth_basic.html
Apache IP 限制
如果你只想允许一个 IP
<Location ~ "wp-login.php">
Require ip w.x.y.z
</Location>
或者
<Files "wp-login.php">
Require ip w.x.y.z
</Files>
来源:https://httpd.apache.org/docs/2.4/fr/howto/access.html
关于 Apache 2.4
供参考,此语法在 apache 2.4 上不再使用
order allow,deny
allow from all
它已被取代
Require all granted
资料来源:https://httpd.apache.org/docs/2.4/fr/howto/access.html
在你的情况下
如果你想在 .htaccess 中添加身份验证 + IP 限制
<Files "wp-login.php">
<RequireAll>
AuthName "Auth Name You Want"
AuthType Basic
AuthUserFile /opt/web/.htpasswd
Require valid-user
Require ip w.x.y.z/24
</RequireAll>
</Files>
我正在考虑你的 IP 掩码是否正确
关于的信息RequireAll
:https://httpd.apache.org/docs/2.4/fr/mod/mod_authz_core.html#requireall
答案2
我在使用 apache 2.4 时遇到了同样的问题,我的解决方案如下:
<Files wp-login.php>
AuthName "Forbidden access"
Order Allow,Deny
Allow from all
</Files>
Allow from 1xx.xxx.xx.x/24
Deny from all