CentOS6下使用Apache部署HTTP服务(4)

因为Web服务器说白了就是让互联网上的其他用户访问自己目录下的文件,但是不可能让用户访问所有的文件吧,因此就需要设置用户可以访问的目录和目录权限,如下:

DocumentRoot    定义用户访问的根目录,一般为/var/www/html

DirectoryIndex  定义用户访问一个网站的首页,默认为index.html

什么是首页,就是用户在网址列只输入到目录,因为没有指定要访问的文件,因此会显示DirectoryIndex设置的文件,文件显示的内容就是首页。

可以设置多个首页,默认显示第一个文件

DocumentRoot "/var/www/html"

DirectoryIndex index.html index.html.var

上面内容的意思是只输入域名或者IP地址后(后面没有跟具体的文件名),则默认进入/var/www/html目录下,并且如果目录下存在index.html/index.html.var的文件,则在网址列的URL仅输入到目录的时候,会去显示该目录下的index.html/index.html.var文件(同时存在按照先后顺序),即DirectoryIndex指令的值会递归到每个目录。

CentOS6下使用Apache部署HTTP服务

5.2 设置指定目录的首页

上面设定首页的方法是对全部目录生效的,那如果只针对特定目录设置不同的首页内容,该怎么做呢?配置文件中为我们提供了 ... 的指令,他表示的含义是对目录进行访问控制,具体用法如下:

[root@CentOS6 conf.d]# pwd
/etc/httpd/conf.d
[root@CentOS6 conf.d]# cat isolinux.conf
<Directory "/var/www/html/isolinux">
DirectoryIndex splash.jpg
</Directory>

上边已经说过,建议修改指令参数在/etc/httpd/conf.d/目录下新增加文件进行修改,我在该目录下新建了isolinux.conf的文件,在该文件中利用目录的访问控制加入指定目录的DirectoryIndex为splash.jpg(图片格式),而全局的DirectoryIndex仍然为index.html保持不变,效果如下:

CentOS6下使用Apache部署HTTP服务

5.3 设置目录的特殊访问控制

当然指令的功能不止于上面设置目录首页的功能,还有更多的功能可以借助不同的参数来实现,例如Options,AllowOverride等。

Options        设定目录能够进行的动作的参数,选项如下:

Indexes        如果该目录内没有找到设定为首页的文件,则将该目录内的所有文件的索引列出来,即该目录下的每个文件名

FollowSymLinks  字面意思:跟踪符号链接,就是可以访问到该链接文件的源文件,如果该链接文件指向了/var/www/html外的其他文件,该选项可以使其生效。

All            全部允许

None            全部禁用

CentOS6下使用Apache部署HTTP服务

Options选项是在配置文件中生效的,那么AllowOverride则是在客户端要访问的目录内生效的,现在配置文件中利用AllowOverride指定能够生效的选项,然后在指定目录内添加.htaccess,在该文件中设定访问控制选项。

其实/etc/httpd/conf/httpd.conf文件中的AccessFileName指令定义了 .htaccess文件。

AllowOverride    允许.htaccess文件可以覆盖主配置文件的选项设定,实现避免多个个人首页目录维护同时修改主配置文件

主配置文件需要root身份才可以修改,主配置文件需要重启服务才会生效,因此加入了.htaccess文件,只需要在该文件中进行修改用以覆盖主配置文件的参数设定

All      允许所有

None      全部禁止,则.htaccess文件失效

AuthConfig 只允许用户认证可以被覆盖

Limit      Order可以被覆盖

Indexes    允许Indexes可以被覆盖,这里的Indexes和Options里的Indexes不是同一个意思。

Options    允许目录可以进行的动作

[root@CentOS6 conf.d]# pwd
/etc/httpd/conf.d
[root@CentOS6 conf.d]# cat root.conf      # 新添加的root.conf配置文件
<Directory "/var/www/html">
    AllowOverride Options Indexes        # 允许Indexes选项
</Directory>
[root@CentOS6 html]# pwd
/var/www/html
[root@CentOS6 html]# cat .htaccess        # 在指定目录下创建.htaccess文件
Options Indexes

可以达到和直接在配置文件里指定Options Indexes同样的效果。

CentOS6下使用Apache部署HTTP服务

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:https://www.heiqu.com/9b2eee164881679d4442cc40ae62676f.html