.htaccess探秘(一)访问控制(Allow/Deny)

  •   
  • 3828
  • Linux
  • 3
  • super_dodo
  • 2015/11/06

htaccess访问控制(Allow/Deny)

1. 验证是否支持.htaccess

在目录下新建一个.htaccess 文件,随笔输入一串字符(毫无意义),看看什么反应,如果是500错误,说明目前环境是支持 .htaccess的

adsadsadasdsad

281019115169530

2. deny from all

# no one gets in here!
deny from all

281019276418557

3. Order命令

Order命令是一个难点,也是配置apache的基础,它决定了Apache处理访问规则的顺序。

通过Allow,Deny参数,Apache首先找到并应用Allow命令,然后应用Deny命令,以阻止所有访问。
通过Deny,Allow参数,Apache首先找到并应用Deny命令,然后应用Allow命令,以允许所有访问。

//假设本地的IP为 192.168.4.126

Order Deny,Allow
Deny from All
Allow from 192.168.4.126

//结果:本地访问成功,非本地IP访问 403 Forbidden

4. 利用.htaccess过滤域名或网络主机(Allow/Deny)

下例可以限制所有含有"domain.com”的网络主机访问网站:

Order Allow,Deny
Allow from all
Deny from .*domain\.com.*

5. 禁止访问指定文件

Order Deny,Allow
Deny from All
Allow from 192.168.4.126 

<Files favicon.ico>
	order allow,deny
	deny from all
</Files>

281019494385816

6. 禁止访问指定类型的文件

Order Deny,Allow
Deny from All
Allow from 192.168.4.126 

<FilesMatch ".(txt|ico)$">
	order allow,deny
	deny from all
</FilesMatch>

281020012986138

281020080326029

Files之后的波浪线用于开启“正则表达式”分析。请注意,这是个过时的用法,Apache更推荐使用指令[3]正则表达式必须在双引号之间,有关htaccess的正则表达式用法,请查阅本站《.htaccess正则表达式》一文。

双引号中的“管道符”(|)用于将两种文件类型(.log和.exe)分开,相当于逻辑“或”Order命令必须嵌在Files节(Section)中,否则将会应用到所有文件Satisfy All表示必须同时满足主机级别(Allow/Denay)和用户级别(Require)的限制,All是默认值,该行可以省略。

利用.htaccess进行密码保护与验证有待研究

htaccess探秘系列相关延伸阅读

.htaccess探秘(一)访问控制(Allow/Deny)

.htaccess探秘(二)目录浏览与主页

.htaccess探秘(三)URL重写与URL重定向

.htaccess探秘(四)htaccess正则表达式

只要热情犹在,哪怕青春消逝。一个人能力当中所蕴藏的潜能,远超过自己想像以外。

转载原文地址: http://www.cnblogs.com/ganiks/