0

我似乎无法让这个 .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我现在正在阅读

4

1 回答 1

0

.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]
于 2013-10-19T16:36:43.163 回答