我似乎无法让这个 .htaccess 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 login .htaccess IP 阻止程序的六种变体,IP 是我的实际 IP,它显示在 5 个不同的“我的 IP 是什么”网站上的 IP . 当我删除或重命名 .htaccess 时,任何人都可以查看登录页面,但是当它在那里时,我也不能。
此外,博客本身位于 blog.domain.com 中,domain.com 执行 301 重定向以将其带到那里,因此博客和 .htaccess 位于 blog.domain.com/ 中。我怀疑这会有所不同,但这就是它的设置方式。
更新:我尝试在另一个没有 cloudflare 的站点上使用相同的 .htaccess,这是我使用的 .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]
如您所见,我将其更改为仅适用于 index.php,并且我制作了一个快速测试 index.php 页面。当我在我的电脑上去那里时,它会加载它,但代理会正确返回 403。cloudflare 会以某种方式导致问题吗?即使我禁用了缓存,它会搞砸吗?
我刚刚发现这个https://www.cloudflare.com/resources-downloads#mod_cloudflare我现在正在阅读