2012-12-18 41 views
13

我试图做一个快速的htaccess来阻止所有,但我的IP。.htaccess阻止所有,但我的IP

我有这个

order deny, allow 
    deny from all 
    allow from "MY IP" 

“我的IP”是我的IP

我不能看到,如果从我的IP - 这是做到这一点的正确方法是什么?

+0

'命令拒绝,允许'语法无效,空格不允许。 Apache会产生一个错误。它应该是'命令拒绝,允许',但我无法修复它,因为不允许使用<6个字符的编辑。 – dezlov

+0

[拒绝所有,只允许一个IP通过htaccess]可能的重复(http://stackoverflow.com/questions/4400154/deny-all-allow-only-one-ip-through-htaccess) – IvanRF

回答

18

最有效的方法是使用为该任务设计的指令将自己列入白名单。

Order Allow,Deny 
Allow from 123.456.789.123 

其中123.456.789.123是您的静态IP地址。

当使用“Order Allow,Deny”指令时,请求必须匹配Allow或Deny,如果两者都不符合,请求将被拒绝。

http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html#order

或者你可以用mod_rewrite的做到这一点,像这样。

RewriteEngine On 
RewriteCond %{REMOTE_ADDR} !^123\.456\.789\.123$ 
RewriteRule .* - [F] 

注意“RewriteEngine叙述论”将是多余的,如果你已经摆在你的规则上面这一个。所以如果是这种情况,你可以在这里丢弃它。

7

你有正确的语法:

order deny,allow 
deny from all 
allow from 127.0.0.1 

(注:各地的IP地址不包括引号)

您可能要增加一倍。如果你被时拒绝检查正在使用正确的IP地址你认为你应该有访问权限。

例如,检查http://www.whatsmyip.org/ - 也许你和服务器之间有一些东西,就像代理服务器,而不是你自己的IP地址。

+1

'命令拒绝,允许'语法无效,空格不允许。 Apache会产生一个错误。它应该是'命令拒绝,允许',但我无法修复它,因为不允许使用<6个字符的编辑。 – dezlov

相关问题