.htaccess IP阻止无法正常工作

时间:2013-10-19 16:35:48

标签: php wordpress .htaccess block

我似乎无法让这个.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登录.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]

正如您所看到的,我将其更改为仅在index.php上工作,并且我做了一个快速测试index.php页面。当我在我的计算机上运行时,它会加载它,但代理正确地返回403。 cloudflare可能会导致问题吗?即使我禁用了缓存,它可能会搞砸吗?

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

1 个答案:

答案 0 :(得分: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]