IP限制
禁止某些IP访问/只允许某些IP访问
<Directory "/var/www/web/"> Order allow,deny Allow from all #可以定义多个 Deny from #阻止一个IP Deny from 10.0.0.1 #阻止一个IP段 Deny from 192.168.0.0/24 #禁止192.168.1.1-192.168.1.254段 deny from 192.168.1 #禁止从 66.249.79.32 到 66.249.79.47 的地址 Deny from 66.249.79.32/28 </Directory>
Deny from 66.249.79.32/28 拆解
采用了CIDR(Classless Inter-Domain Routing)表示法。
IP 地址部分:
66.249.79.32,它是一个 IPv4 地址。IPv4 地址由四个 8 位的组成,每个组用一个点分隔。
子网掩码部分:
/28,它表示子网掩码的长度。子网掩码的长度告诉我们有多少位是网络标识位,剩下的是主机标识位。
/28 表示前 28 位是网络标识位,后面的 4 位是主机标识位。
子网掩码 /28 的二进制表示是: 11111111.11111111.11111111.11110000
IP 地址 66.249.79.32 的二进制表示是: 01000010.11111001.01001111.00100000
逻辑与操作后得到的二进制结果是: 01000010.11111001.01001111.00100000
将结果转换回十进制得到网络地址: 66.249.79.32
子网大小是 2^4 = 16,所以地址范围是从 66.249.79.32 到 66.249.79.47。
计算子网的地址范围:地址范围的起始地址是网络地址,结束地址是网络地址加上子网大小减1的地址。
只允许某些IP访问,适合比如就允许内部或者合作公司访问
<Directory “/var/www/web/”>
Order deny,allow
Deny from all
#允许某个域名
All from example.com
#允许一个iP
All from 10.0.0.1
#允许多个iP
All from 10.0.0.1 10.0.0.2
#允许一个IP段,掩码对
Allow from 10.1.0.0/255.255.0.0
#允许一个IP段,后面不填写
All from 10.0.1 192.168
#允许一个IP段,网络号
All from 192.168.0.0/24
</Directory>
访问限制
禁止访问某些文件/目录
禁止访问某些指定的目录:(可以用 来进行正则匹配)
禁止访问某些类型的文件,比如禁止所有针对图片的访问
禁止访问某些URL相对路径
<Location /dir/>
Order allow,deny
Deny from all
</Location>
禁止使用代理方式对某些目标的访问( 可以用来正则匹配),比如拒绝通过代理访问domain.com
<Proxy http://domain.com/*>
Order allow,deny
Deny from all
</Proxy>
Allow和Deny是什么?
Allow和Deny用来控制目录和文件的访问授权。可以用于apache的conf文件或者.htaccess文件中(配合Directory, Location, Files等)。
order,顾名思义是顺序的意思,所以order命令可以决定deny和allow起作用的顺序,通俗的说就是谁排在最后那么谁就有最终的决定权。