.htaccess IP 阻止不起作用


.htaccess IP Blocking not working

我似乎无法让这个.htaccess IP阻止脚本工作。我想阻止除我的 IP 以外的任何 IP 访问 wordpress 登录脚本和管理文件夹。在此代码中,我的IP是55.55.555.55。它的工作原理是阻止从所有IP访问文件和文件夹,但它不允许我通过我的IP访问它。我也收到 403 错误。我正在运行Cloudflare,我不知道这是否会导致问题。这是当前的 .htaccess

RewriteEngine On
RewriteBase /
#Block everyone but me
RewriteCond %{REMOTE_ADDR} !^55'.55'.555'.55$
RewriteRule ^(wp-login'.php|wp-admin) - [F,NC]
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

我不知道为什么它不起作用,我已经尝试了六种 wordpress 登录 .htaccess IP 拦截器,IP 是我的实际 IP,它在 5 个不同的"我的 IP"网站上显示的 IP。当我删除或重命名.htaccess时,任何人都可以查看登录页面,但是当它在那里时,我也不能。

此外,博客本身是 blog.domain.com,domain.com 会执行 301 重定向以将其带到那里,因此博客和 .htaccess 处于 blog.domain.com/状态。我怀疑这有什么不同,但这就是它的设置方式。

更新:我尝试在我拥有的另一个网站上使用相同的.htaccess,该站点没有cloudflare,这是我使用的.htaccess。

AddHandler php-stable .php
RewriteEngine On
RewriteBase /
#Block everyone but me
RewriteCond %{REMOTE_ADDR} !^55'.55'.555'.55$
RewriteRule ^(index.php) - [F,NC]
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]

如您所见,我将其更改为仅适用于索引.php,并制作了一个快速测试索引.php页面。当我在计算机上去那里时,它会加载它,但代理正确返回 403。云耀斑会以某种方式导致问题吗?即使我禁用了缓存,它也会搞砸吗?

我刚刚发现这个 https://www.cloudflare.com/resources-downloads#mod_cloudflare 我现在正在阅读它

.htaccess 中的规则顺序非常重要。在您的情况下,WP规则高于并完全控制。

更改顺序或规则:

RewriteEngine On
RewriteBase /
# Block everyone but me
RewriteCond %{REMOTE_ADDR} !^55'.55'.555'.55$
RewriteCond %{THE_REQUEST} 's/+(wp-login'.php|wp-admin/)['s?] [NC]
RewriteRule ^ - [F]
# regular WP stuff
RewriteRule ^index'.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]