文件系统和网络空间 最常用的配置段是针对文件系统和网络空间特定位置的配置段。首先必须理解文件系统和网络空间这两个概念的区别,文件系统是指操作系统所看见的磁盘视图,比 如,在Unix文件系统中,Apache会被默认安装到/usr/local/apache2 ,在Windows文件系统中,Apache会被默认安装到"C:/Program Files/Apache Group/Apache2"(注意:Apache始终用正斜杠而不是反斜杠作为路径的分隔符,即使是在Windows中)。相反,网络空间是网站被 web服务器发送以及被客户在浏览器中所看到的视图。所以网络空间中的路径/dir/ 在Apache采用默认安装路径的情况下对应于Unix文件系统中的路径/usr/local/apache2/htdocs/dir/ 。由于网页可以从数据库或其他地方动态生成,因此,网络空间无须直接映射到文件系统。
文件系统容器 和指令与其相应的正则表达式版本(和)一起作用于文件系统的特定部分。配置段中的指令作用于指定的文件系统目录及其所有子目录,.htaccess文件可以达到同样的效果。下例中,/var/web/dir1 及其所有子目录被允许进行目录索引。
<Directory /var/web/dir1>
Options +Indexes
</Directory>
配置段中的指令作用于特定的文件名,而无论这个文件实际存在于哪个目录。下例中的配置指令如果出现在配置文件的主服务器段,则会拒绝对位于任何目录下的private.html的访问。
<Files private.html>
Order allow,deny
Deny from all
</Files>
<Files> 和<Directory>段的组合可以作用于文件系统中的特定文件。下例中的配置会拒绝对 /var/web/dir1/private.html 、/var/web/dir1/subdir2/private.html 、/var/web/dir1/subdir3/private.html等任何 /var/web/dir1/ 目录下private.html的访问。
<Directory /var/web/dir1>
<Files private.html>
Order allow,deny
Deny from all
</Files>
</Directory>
网络空间容器
<Location> 指令与其相应的正则表达式版本(<LocationMatch>)一起作用于网络空间的特定部分。下例中的配置会拒绝对任何 以"/private"开头的URL路径的访问,比如:http://yoursite.example.com/private、http: //yoursite.example.com/private123、http://yoursite.example.com/private /dir/file.html 等所有以"/private"开头的URL路径。
<Location /private>
Order Allow,Deny
Deny from all
</Location>
<Location>指令与文件系统无关,下例演示了如何将特定的URL映射到Apache内部的处理器mod_status ,而并不要求文件系统中确实存在server-status文件。
<Location /server-status>
SetHandler server-status
</Location>