理解Apache配置文件的几个常用标签

<VirtualHost>

想在一台服务器里搭建多个不同的网站可以使用<VirtualHost >标签,配置一个<VirtualHost >就相当于新建了一个站点。例子:

Listen 80
Listen 8080

<VirtualHost *:80>
    ServerName www.example1.com
    DocumentRoot "/www/example1"
</VirtualHost>

<VirtualHost *:8080>
    ServerName www.example2.com
    DocumentRoot "/www/example2"
</VirtualHost>

这个例子建立了两个网站,分别监听80,8080端口,根目录分别为/www/example1和/www/example2。当然也可以配置两个网站都监听80端口,方法参考官方文档。

<Directory>

<Directory>标签用于描述指定文件夹或子文件夹的属性,通常存放于<VirtualHost>标签内部。例如:

<VirtualHost *:80>
    ServerName www.example.com
    DocumentRoot "/www/example"
    <Directory "/www/example">
        Options Indexes FollowSymLinks
        AllowOverride Options
    </Directory>
</VirtualHost>

这段配置的效果为/www/example文件夹指定了Indexes和FollowSymLinks属性(Options Indexes FollowSymLinks效果),并且可以通过改写.htaccess文件来重新设置此处的Indexes和FollowSymLinks属性(AllowOverride Options效果)。

<Files>

<Files>用于描述文件的属性,<Files>嵌套在<Directory>标签中可以限制其作用的范围。

<Directory "/www/example">
    <Files "*.ini">
        Require all denied
    </Files>
</Directory>

这个例子禁止对/www/example目录里所有ini文件的访问。

<Location>

<Location>跟<Directory>类似,但区别在于<Directory>用于描述【文件夹】的属性,而<Location>描述【URL】的属性。

<Location /resource>
    AuthName "Authentication required"
    AuthType Basic
    AuthUserFile /path/to/htpasswd
    Require valid-user
</Location>

这里配置访问网站下的/resource目录时需要进行认证。

发表评论

电子邮件地址不会被公开。 必填项已用*标注