Apache的访问控制
目录配置段
注释不能写在指令后面,下面这样是不行的,应当换行,但为了阅读方便我就这么写了 Alias /dir/ "/var/www/html/admin" #路径的别名 这样就可以在域名后面加 /dir 而实际访问的是 admin下面的文件<Directory /var/www/html/>
Order Allow,Deny #权限的顺序是先允许 后拒绝
Deny from 192.168.1.12 #拒绝192.168.1.12访问
Allow from all #允许所有的访问
Options Indexes FollowSymLink #允许目录索引 符号链接
AllowOverride None #不能被目录下的.htaccess覆盖
# AllowOverride all 允许被目录下的.htaccess规则覆盖 默认是允许的
</Directory>
文件配置段
<Files "hello.html">Order Deny,Allow #先拒绝 后允许
Deny from all #拒绝所有的访问所有目录下的hello.html文件
</Files>
如果文件配置段嵌套到目录配置段,就只控制那个目录下文件的访问权限
url配置段
<Location /admin>Deny from all #拒绝所有的访问/admin这个url
</Location>
文件目录url都可用通配符或正则
<Directory "/var/*/html/">
......
</Directory>
<FilesMatch .(gif|png)>
Deny from all #拒绝访问图片
</FilesMatch>
Apache的虚拟主机配置
基于ip:<VirtualHost 192.168.142.2:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/web1"
ServerName www.aaa.com
ErrorLog "/home/log/error/error.log"
CustomLog "/home/log/coustom/error.log"
</VirtualHost>
<VirtualHost 192.168.142.1:80>
ServerAdmin [email protected]
DocumentRoot "/var/www/web1"
ServerName www.bbb.com
ErrorLog "/home/log/error/error.log"
CustomLog "/home/log/coustom/error.log"
</VirtualHost>
基于域名:NameVirtualHost *:80
#保留原来的localhost
<VirtualHost *:80 >
ServerName *
DocumentRoot "/var/www/html"
</VirtualHost>
#虚拟主机www.aaa.com
<VirtualHost *:80 >
ServerAdmin [email protected]
DocumentRoot "/var/www/web1"
ServerName www.aaa.com
ErrorLog "/home/log/error/error.log"
CustomLog "/home/log/coustom/error.log"
</VirtualHost>
#虚拟主机www.bbb.com
<VirtualHost *:80 >
ServerAdmin [email protected]
DocumentRoot "/var/www/web2"
ServerName www.bbb.com
ErrorLog "/home/log/error/error.log"
CustomLog "/home/log/coustom/error.log"
</VirtualHost>
泛域名的解析
<VirtualHost *:80>
ServerName *.aaa.com
VirtualDocumentRoot /var/www/cct/home/%1
<Directory " /var/www/cct/home/" >
AllowOverride All
Order Allow,Deny
Allow from all
</Directory>
</VirtualHost>
其中的%1是*.aaa.com的第一部分 见下面:
本模块中的所有指令都用于将字符串替换为路径名。被替换的字符串(以后称为"name")可以是服务器名(参见UseCanonicalName指令以了解决策方法)或者是"点数字"格式的虚拟主机IP地址。替换操作由printf格式修饰符控制,该修饰符有以下几种格式:
%% | 插入一个百分号(%) |
%p | 插入虚拟主机的端口号 |
%N.M | 插入名称(或者名称的一部分) |
N和M被用来指定name中的子字符串。N从name中用小数点分隔的某部分中选取,而M是从N选中的字符串中选取部分字符。M是可选的且默认为"0";小数点当且仅当M存在时才必须书写。替换操作如下:
0 | 整个name |
1 | 第一部分 |
2 | 第二部分 |
-1 | 最后一部分 |
-2 | 倒数第二部分 |
2+ | 从第二部分开始到最后的所有部分 |
-2+ | 倒数第二部分以及之前的各部分 |
1+和-1+ | 等同于0 |
如果N或M大于部分的个数,则简单的用下划线来替换。
就是这些了。声明: 此文观点不代表本站立场;转载须要保留原文链接;版权疑问请联系我们。