我已经在线研究了此主题,但我不知道如何使它起作用(现在已经工作了一个星期)。我尝试了几种不同的代码块,但到目前为止没有任何效果。我可以在实时IP流量中看到,除我以外的其他人访问wp-login.php时都收到HTTP 200。此外,当我尝试注销然后重新登录时,我被HTTP 403错误阻止。
作为一个例子,假设我要限制对123.123.123.123(IPv4)和1.2.3.4(使我的DNS变得模糊的服务,如Cloudflare)的访问。我尝试了以下代码:
<Files wp-login.php>
order allow,deny
deny from all
allow from 123.123.123.123
allow from 1.2.3.4
</Files>
<Files wp-login.php>
order deny,allow
allow from 123.123.123.123
allow from 1.2.3.4
deny from all
</Files>
RewriteEngine on RewriteCond %{REQUEST_URI} ^(.*)?wp-login\.php(.*)$ [OR] RewriteCond %{REQUEST_URI} ^(.*)?wp-admin$ RewriteCond %{REMOTE_ADDR} !^123\.123\.123\.123$ RewriteRule ^(.*)$ - [R=403,L] {REMOTE_ADDR} !^1\.2\.3\.4$ RewriteRule ^(.*)$ - [R=403,L]
<Files wp-login.php>
Require ip 123.123.123.123
Require ip 1.2.3.4
</Files>
这是一台Apache 2.4.10服务器,我在这里和其他地方都看到不赞成使用该命令拒绝规则,因此我想我应该避免使用这些规则。我已经看到我应该在哪里使用“ Require”,但即使这样也不起作用。我不确定问题是否出在我的代码不正确和/或我需要在其白名单中添加所有Cloudflare IP地址,因为它们可能使用动态IP地址?
在此先感谢您的帮助!