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

小tips:在这里说说明一下AllowOverride中的选项中Option Indexes和Indexes的区别,Option Indexes的具体实现已经在上例中说了,是用来实现显示目录的文件名的;现在来看看Indexes的用法

[root@CentOS6 conf.d]# pwd
/etc/httpd/conf.d
[root@CentOS6 conf.d]# cat root.conf
<Directory "/var/www/html">
    AllowOverride Indexes
</Directory>
[root@CentOS6 html]# pwd
/var/www/html
[root@CentOS6 html]# cat .htaccess
DirectoryIndex index.html

重启服务,本机访问127.0.0.1,可以看到出现了首页内容,由此可以得出Indexes是可以来用来实现目录首页的功能的。
5.4 根据客户端设置访问控制

Order 根据不同的客户端IP设置不同的访问权限,Order选项需要写到<Directory>、<Files "xxx">、<FilesMatch "xxx">、<Location "xxx"> 或者.htaccess文件中

还可以实现同一个IP可以访问不同的目录

Order定义处理顺序,allow from/deny from表示具体的策略

Order deny,allow 拒绝所有,允许特定

Order allow,deny 允许所有,拒绝特定

例如:

Order allow,deny

拒绝所用访问

Order deny,allow

允许所有访问

Order allow,deny
allow from all
deny from 192.168.138.150

允许所有访问,但是192.168.138.150无法访问

Order deny,allow
deny from 192.168.138.150
allow from all

允许所有访问

Order deny,allow
deny from 192.168.138.0/24
allow from 192.168.138.150

拒绝192.168.138.0/24网段的所有主机访问,但是允许192.168.138.150访问,当出现在一个交叉集的时候,后者会覆盖前者,交叉集外的仍然生效。

5.5 目录内文件的访问控制

Apache不仅可以实现目录的访问控制,还可以实现目录内特定文件的访问控制,这里借助的是<Files "xxx"> ... </Files>和<FilesMatch "xxx"> ... </FilesMatch>指令,区别是前者针对指定的文件进行设置,后者针对符合匹配条件的文件进行设置,而且后者支持正则表达式。

[root@CentOS6 conf.d]# pwd
/etc/httpd/conf.d
[root@CentOS6 conf.d]# cat isolinux.conf
<Directory "/var/www/html/isolinux">
    Options Indexes FollowSymlinks
</Directory>

CentOS6下使用Apache部署HTTP服务

随后更改isolinux.conf文件

[root@CentOS6 conf.d]# pwd
/etc/httpd/conf.d
[root@CentOS6 conf.d]# cat isolinux.conf
<Directory "/var/www/html/isolinux">
    Options Indexes FollowSymlinks
</Directory>
<FilesMatch "^boot">    # 以boot开头的文件
    Order allow,deny    # 表示拒绝所有人访问
</FilesMatch>

CentOS6下使用Apache部署HTTP服务

<Location "xxx"> ... </Location>

URL的访问控制

<LocationMatch "xxx"> ... </LocationMatch>

支持正则表达式的URL的访问控制

六、路径别名

路径别名可以隐藏服务器上的真实路径,当收到访问该别名的请求时,服务器自动跳转到真实的目录下返回资源给客户端,这一过程对客户端是透明的。

Alias /xxx "实际目录"    网站根目录下的xxx目录会自动链接到后边的实际目录

例如:Alias /icons/ "/var/www/icons/"

网址列输入,会访问到/var/www/icons/目录下的文件,而实际上/var/www/html/icons目录下并没有文件 

在/etc/httpd/conf/httpd.conf主配置文件中默认存在这些指令,首先要在/var/www/html/目录下创建icons目录

[root@CentOS6 html]# pwd
/var/www/html
[root@CentOS6 html]# mkdir icons

CentOS6下使用Apache部署HTTP服务

CentOS6下使用Apache部署HTTP服务

ScriptAlias /xxx "实际目录"    和Alias类似,只不过该实际目录下存放的是具有执行能力的文件

例如:ScriptAlias /cgi-bin/ "/var/www/cgi-bin/"

七、基于用户(组)认证的访问控制

每个网站都会有后台管理员管理网站后台的一些工作,但是网站后台不是每个用户都可以登录,因此需要设置用户的访问控制,实现用户认证的功能。具体的设定如下:

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

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