apache目录权限控制
<Directory 目录名></Directory> 定义一个目录
Options:目录中将使用哪些服务器特性
None //不启用任何额外特性 All //启用除MultiViews之外的所有特性(默认设置) Indexes //当用户访问该目录时,找不到index文件,则返回该目录下的文件列表给用户 FollowSymLinks //可以在该目录中使用符号连接,这样就访问目录之外的文档 MultiViews //允许内容协商的多重视图 Includes //允许服务器端包含 IncludesNOEXEC //允许服务器端包含,但禁用#exec命令和#exec CGI ExecCGI //允许执行CGI脚本
另外:
+ 号表示合并上层目录的Options和当前目录的Options
- 号表示移除上层目录的Options选项
<Directory /> Options Indexes FollowSymLinks </Directory> <Directory /www> Options Includes //当前目录只有Includes </Directory>
<Directory /> Options Indexes FollowSymLinks </Directory> <Directory /www> Options +Includes -Indexes //当前目录有FollowSymLinks和Includes </Directory>
AllowOverride
None //禁止搜索该目录下的.htaccess文件。
All //允许使用该目录下的.htaccess文件。
由于Apache对一个目录的访问控制设置是能够被下一级目录继承的,
因此对根目录的设置将影响到它的下级目录,
如果从根目录就允许查看.htaccess文件,
那么Apache就必须一级一级的查看.htaccess文件,对系统性能会造成影响,
因此对于系统根目录设置AllowOverride None不但对于系统安全有帮助,也有益于系统性能。
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
目录访问控制
Apache2.2 使用order和allow,deny
Order Allow,Deny //order决定最后使用哪一条规则 Allow from all Deny from ip1 ip2 //deny是最后一条,符合ip1和ip2的访问会被禁止
Order Deny,Allow //最后一条是allow,所以第三条deny不会生效 Allow from all Deny from domain.org
Order Allow,Deny Allow from ip1 Deny from all //deny是最后一条,all包含ip1,所以所有访问都会禁止
Apache2.4 使用require
Require all granted //允许所有访问 Require all denied //拒绝所有访问 Require local //仅允许本地访问(默认) Require all granted Require ip 192.168.0.1 //仅允许IP:192.168.0.1 访问 Require all granted Require not ip 192.168.0.1 //仅禁止IP:192.168.0.1访问