铭哥和佩佩的博客

铭哥和佩佩的博客分享Python、PHP、JavaScript、HTML5、CSS3等各种知识

apache2.4目录权限配置项详解

不论是设置DocumentRoot主目录,还是虚拟主机目录,我们都需要对目录进行相关的权限配置,下面我们来详解一下各配置项的意义

<Directory "/Users/jackma/htdocs">
   
    Options FollowSymLinks Multiviews
    MultiviewsMatch Any
      
    AllowOverride None

    Require all granted
</Directory>

Options 配置项

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

  • All
    表示除MultiViews之外的所有特性。这也是Options指令的默认设置。

  • None
    表示不启用任何的服务器特性。

  • FollowSymLinks
    服务器允许在此目录中使用符号连接。

  • Indexes
    如果输入的网址对应服务器上的一个文件目录,而此目录中又没有DirectoryIndex指令(例如:DirectoryIndex index.html index.php),那么服务器会返回由mod_autoindex模块生成的一个格式化后的目录列表。

  • MultiViews
    允许使用mod_negotiation模块提供内容协商的"多重视图"。简而言之,如果客户端请求的路径可能对应多种类型的文件,那么服务器将根据客户端请求的具体情况自动选择一个最匹配客户端要求的文件。例如,在服务器站点的file文件夹下中存在名为hello.jpg和hello.html的两个文件,此时用户输入Http://localhost/file/hello,如果在file文件夹下并没有hello子目录,那么服务器将会尝试在file文件夹下查找形如hello.*的文件,然后根据用户请求的具体情况返回最匹配要求的hello.jpg或者hello.html。

  • SymLinksIfOwnerMatch
    SymLinksIfOwnerMatch服务器仅在符号连接与目标文件或目录的所有者具有相同的用户ID时才使用它。简而言之,只有当符号连接和符号连接指向的目标文件或目录的所有者是同一用户时,才会使用符号连接。

  • ExecCGI
    允许使用mod_cgi模块执行CGI脚本。

  • Includes
    允许使用mod_include模块提供的服务器端包含功能。

  • IncludesNOEXEC
    允许服务器端包含,但禁用"#exec cmd"和"#exec cgi"。但仍可以从ScriptAlias目录使用"#include virtual"虚拟CGI脚本。

AllowOverride 配置项

该配置项用于指定是否使用.htaccess文件,参数有如下表

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

Require配置项

该配置项用于指定允许、拒绝列表

  • 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的域访问

仅有一条评论

  1. 牛,感谢

添加新评论