Apache2.4权限配置

Apache2.4权限配置(原创帖-转载请注明出处)

=======================说在前面的话============

1:这次实验使用的php项目是Discuz,Discuz的安装请参照:http://blog.51cto.com/wangxiaoke/2175981

===================现在开干===================

在本次实验中我们使用如下标签:

<Directory “目录”>   ... </Directory>

<Filesmatch “文件”>  ... </Filesmatch>

<Location “URL”>    ... </Location> 

 

 

第一:<Directory “目录”></Directory>标签讲解

           说明:针对目录做权限限制

           1:标签结构

                以 <Directory “目录”> 开头,中间填充选项参数,以 </Directory> 结尾

           2:标签位置

                在 <VirtualHost *:80> 和 </VirtualHost> 标签中间

           3:标签指令参数详解

                       ①:Options指令,Options指令后可以附加指定多种服务器特性,特性选项之间以空格分隔,特性表如下:

All                    表示除MultiViews之外的所有特性。这也是Options指令的默认设置
None 表示不启用任何的服务器特性。
FollowSymLinks 服务器允许在此目录中使用符号连接。如果该配置选项位于<Location>配置段中,将会被忽略。
Indexes

如果输入的网址对应服务器上的一个文件目录,而此目录中又没有DirectoryIndex指令

(例如:DirectoryIndex index.html index.php),那么服务器会返回由mod_autoindex

模块生成的一个格式化后的目录列表。

MultiViews

允许使用mod_negotiation模块提供内容协商的"多重视图"。简而言之,如果客户端请求的

路径可能对应多种类型的文件,那么服务器将根据客户端请求的具体情况自动选择一个最匹

配客户端要求的文件。例如,在服务器站点的file文件夹下中存在名为hello.jpghello.

html的两个文件,此时用户输入Http://localhost/file/hello,如果在file文件夹下并

没有hello子目录,那么服务器将会尝试在file文件夹下查找形如hello.*的文件,然后根

据用户请求的具体情况返回最匹配要求的hello.jpg或者hello.html

SymLinksIfOwnerMatch

SymLinksIfOwnerMatch服务器仅在符号连接与目标文件或目录的所有者具有相同的用户

ID时才使用它。简而言之,只有当符号连接和符号连接指向的目标文件或目录的所有者是同

一用户时,才会使用符号连接。如果该配置选项位于<Location>配置段中,将会被忽略。

ExecCGI 允许使用mod_cgi模块执行CGI脚本。
Includes 允许使用mod_include模块提供的服务器端包含功能。
IncludesNOEXEC

允许服务器端包含,但禁用"#exec cmd"和"#exec cgi"。但仍可以从ScriptAlias目录

使用"#include virtual"虚拟CGI脚本。

                              

                       ②:AllowOverride指令,该指令用于指定是否使用.htaccess文件,参数有如下表:

All 开启.htaccess文件
None 关闭.htaccess文件

 

                       ③:Require指令,该指令用于指定允许、拒绝列表,在Apache2.2用的是下面这种

.

                            而在Apache2.4用的是 Require all granted 和 Require all denied这种方式,具体如下表:

Require all granted 允许所有的访问
Require all denied 拒绝所有访问
Require ip 10.2.2.32 允许10.2.2.32这个地址访问
Require not ip 10.3.3.21 拒绝10.3.3.21这个地址访问
Reuquire host baidu.com 允许名为baidu.com的域访问
Reuquire not host baidu.com 拒绝名为baidu.com的域访问

 

                            如果是一条规则,可以直接使用,但是如果有多条规则,则必须把这些规则包含在如下元素当中:

<RequireAll>     </RequireAll> 在此元素中包含的规则,拒绝优先执行
<RequireAny>     </RequireAny> 在此元素中包含的规则,允许优先执行

                            举例1:允许所有访问,只拒绝192.168.1.103访问  

                <RequireAll>
                    Require all granted
                    Require not ip 192.168.1.103
                </RequireAll>

                           举例2:拒绝所有访问,只允许192.168.1.103访问

                <RequireAny>
                    Require all denied
                    Require ip 192.168.1.103
                </RequireAny>

                          

第二:<FilesMatch “文件”> </FilesMatch>

           说明:针对文件做权限限制,和Apache2.2版本的 <Files "文件"> </Files>  作用一样,只不过新的这个支持正则表达式。

           1:标签结构

                以 <FilesMatch “文件”> 开头,中间填充选项参数,以 </FilesMatch> 结尾

           2:标签位置

                在 <VirtualHost *:80> 和 </VirtualHost> 标签中间

           3:标签指令参数详解:

                            ①:Require指令,该指令用于指定允许、拒绝列表,在Apache2.2用的是下面这种

                       Order Deny,Allow
                             Deny All
                            Allow Form 10.3.33.3  

                            而在Apache2.4用的是 Require all granted 和 Require all denied这种方式,具体如下表:

Require all granted 允许所有的访问
Require all denied 拒绝所有访问
Require ip 10.2.2.32 允许10.2.2.32这个地址访问
Require not ip 10.3.3.21 拒绝10.3.3.21这个地址访问
Reuquire host baidu.com 允许名为baidu.com的域访问
Reuquire not host baidu.com 拒绝名为baidu.com的域访问

 

                            如果是一条规则,可以直接使用,但是如果有多条规则,则必须把这些规则包含在如下元素当中:

<RequireAll>     </RequireAll> 在此元素中包含的规则,拒绝优先执行
<RequireAny>     </RequireAny> 在此元素中包含的规则,允许优先执行

                            举例1:允许所有访问,只拒绝192.168.1.103访问  

                <RequireAll>
                    Require all granted
                    Require not ip 192.168.1.103
                </RequireAll>

                           举例2:拒绝所有访问,只允许192.168.1.103访问

                <RequireAny>
                    Require all denied
                    Require ip 192.168.1.103
                </RequireAny>

                          

第三:<LocationMatch "URL"> </LocationMatch>

          说明:针对URL做权限限制,和Apache2.2版本的 <Location "URL"> </Location>  作用一样,只不过新的这个支持正则表达式。 

          1:标签结构

                以 <LocationMatch “文件”> 开头,中间填充选项参数,以 </LocationMatch> 结尾

          2:标签位置

                在 <VirtualHost *:80> 和 </VirtualHost> 标签中间

          3:标签指令参数详解:

                            ①:Require指令,该指令用于指定允许、拒绝列表,在Apache2.2用的是下面这种

                       Order Deny,Allow
                             Deny All
                             Allow Form 10.3.33.3

                            而在Apache2.4用的是 Require all granted 和 Require all denied这种方式,具体如下表:

Require all granted 允许所有的访问
Require all denied 拒绝所有访问
Require ip 10.2.2.32 允许10.2.2.32这个地址访问
Require not ip 10.3.3.21 拒绝10.3.3.21这个地址访问
Reuquire host baidu.com 允许名为baidu.com的域访问
Reuquire not host baidu.com 拒绝名为baidu.com的域访问

 

                            如果是一条规则,可以直接使用,但是如果有多条规则,则必须把这些规则包含在如下元素当中:

<RequireAll>     </RequireAll> 在此元素中包含的规则,拒绝优先执行
<RequireAny>     </RequireAny> 在此元素中包含的规则,允许优先执行

                            举例1:允许所有访问,只拒绝192.168.1.103访问  

                <RequireAll>
                    Require all granted
                    Require not ip 192.168.1.103
                </RequireAll>

                           举例2:拒绝所有访问,只允许192.168.1.103访问

                <RequireAny>
                    Require all denied
                    Require ip 192.168.1.103
                </RequireAny>

 


猜你喜欢

转载自blog.51cto.com/wangxiaoke/2175990
今日推荐