用.htaccess禁止网站上某些IP或IP段的访问方法:
复制代码代码如下:
Order Allow,Deny
Deny from 111.111.111.111 222.222.222.222 Allow from all 就可以轻松实现禁止这两个IP访问网站。
Allow 指令
Allow指令影响哪些主机可以访问服务器的一个区域。可以用主机名、IP地址、 IP地址范围或者其他环境变量中捕获的客户端请求特性来对访问进行控制。
一个域名(部分)
IPv6地址和IPv6子网可以像下面这样指定:
复制代码代码如下:
Allow from fe80::a00:20ff:fea7:ccea
Allow from fe80::a00:20ff:fea7:ccea/10 Allow指令的第三种参数格式允许对服务器的访问由 环境变量的一个扩展指定。指定 Allow from env=env-variable时,如果环境变量env-variable存在则访问请求被允许。 使用由mod_setenvif提供的指令,服务器用一种基于客户端请求的弹性方式提供了设置环境变量的能力。 因此,这条指令可以用于允许基于像User-Agent(浏览器类型)、Referer或者其他Http请求头字段 的访问。
例子:
复制代码代码如下:
SetEnvIf User-Agent ^KnockKnock/2.0 let_me_in
Order Deny,Allow 这种情况下,发送以KnockKnock/2.0开头的用户代理标示的浏览器将被允许访问,而所有其他浏览器将被禁止访问。
Deny 指令 这条指令允许基于主机名、IP地址或者环境变量限制对服务器的访问。 Deny指令的参数设置和Allow指令完全相同。
Order 指令 Order指令控制缺省的访问状态和 Allow与Deny指令被评估的顺序。 Ordering是以下几种范例之一:
Deny,Allow
在下面的例子中,apache.org域中所有主机都允许访问,而其他任何主机访问都被拒绝。
复制代码代码如下:
Order Deny,Allow
Deny from all Allow from apache.org
下面例子中,apache.org域中所有主机,除了foo.apache.org子域包含的主机被拒绝访问以外,都允许访问。 而所有不在apache.org域中的主机都不允许访问,因为缺省状态是拒绝对服务器的访问。
复制代码代码如下:
Order Allow,Deny
Allow from apache.org Deny from foo.apache.org 另一方面,如果上个例子中的Order指令改变为Deny,Allow, 将允许所有主机的访问。这是因为,不管配置文件中指令的实际顺序如何, Allow from apache.org指令会最后被评估到并覆盖之前的 Deny from foo.apache.org。所有不在apache.org 域中的主机也允许访问是因为缺省状态被改变到了允许。 即使没有伴随Allow和Deny指令,一个Order 指令的存在也会影响到服务器上某一个部分的访问, 这是由于他对缺省访问状态的影响。例如,Order Allow,Deny ,这样将会禁止所有对/www目录的访问,因为缺省状态将被设置为拒绝. Order指令只在服务器配置的每个段内部控制访问指令的处理。 这暗示着,例如,一个在段出现的 Allow或者Deny指令总是将会在一个段或者 .htaccess文件中出现的 Allow或Deny 指令之后被评估,而不管Order指令中的设置为何。要了解配置段落合并的详细信息, 参看How Directory, Location and Files sections work相关文档。 (责任编辑:IT) |