Aapche 主配置文件

Apache 目录相关指令作用域

<Directory> 目录封装指令


说明 封装一组指令,使之仅对文件空间中的某个目录及其子目录生效
语法
作用域 server config, virtual host
状态 核心(C)
模块 core
  • <Directory>  </Directory> 用于封装一组指令,使之仅对某个目录及其子目录生效。
  • 任何可以在 “directory” 作用域中使用的指令都可以使用。
  • Directory-path 可以是一个目录的完整路径,或是包含了 Unix shell 匹配语法的通配符字符串。
  • 在通配符字符串中,”?”匹配任何单个的字符,”*” 匹配任何字符序列。您也可以使用 “[]” 来确定字符范围。以上通配符都不能匹配 “/” 字符。
  • 所以 <Directory /*/public_html> 将无法匹配 /home/user/public_html ,但 <Directory /home/*/public_html>能够正确匹配。比如说:

  • 扩展的正则表达式也可以通过附加一个”~”字符来使用。比如说:

  • 如果有多个(非正则表达式) <Directory> 配置段符合包含某文档的目录(或其父目录),那么指令将以短目录优先的规则进行应用。并包含.htaccess文件中的指令。比如说在

  • 正则表达式将在所有普通配置段之后予以考虑。所有的正则表达式将根据它们出现在配置文件中的顺序进行应用。比如说,以下配置:

!注意:

  • Apache  <Directory /> 的默认访问权限为 “Allow from All”。
  • 这意味着 Apache 将伺服任何通过URL映射的文件。我们建议您将这个配置做如下屏蔽

然后在您想要使之被访问的目录中覆盖此配置。参阅安全提示以获取更多详情。

  • 一般来说 <Directory> 指令只会出现在 httpd.conf 文件中,但它们也可能出现在任何其它配置文件中。指令不可被嵌套使用,也不能出现在或配置段中。

参见:

  • <Directory> <Location> <Files> 配置段是如何工作的中包含了当接受一个请求时,这些不同的配置段是如何组合工作的相关解释。

DocumentRoot 文档根目录指令


说明 组成 Web 上可见的主文档树的根目录
语法 DocumentRoot directory-path
默认值 DocumentRoot /usr/local/apache2/htdocs
作用域 server config, virtual host
状态 核心(C)
模块 core
  • 此指令设置了 httpd 伺服的目录。在没有使用类似 Alias 这样的指令的情况下,服务器会将请求中的URL附加到DocumentRoot后面以构成指向文档的路径。比如说:

Options 指令


说明 配置在特定目录中可以使用哪些特性
语法 Options [+
默认值 Options All
作用域 server config, virtual host, directory, .htaccess
覆盖项 Options
状态 核心(C)
模块 core
  • Options 指令控制了在特定目录中将使用哪些服务器特性。
  • option 可以为None ,在这种情况下,将不启用任何额外特性。或设置为以下选项中的一个或多个:
指令名称 说明
All 除MultiViews之外的所有特性。这是默认设置。
ExecCGI 允许使用mod_cgi执行CGI脚本。
FollowSymLinks 服务器允许在此目录中使用符号连接。
Includes 允许使用mod_include提供的服务器端包含。
IncludesNOEXEC 允许服务器端包含,但禁用”#exec cmd”和”#exec cgi”。但仍可以从ScriptAlias目录使用”#include virtual”虚拟CGI脚本。
Indexes 如果一个映射到目录的URL被请求,而此目录中又没有DirectoryIndex(例如:index.html),那么服务器会返回由mod_autoindex生成的一个格式化后的目录列表。
MultiViews 允许使用mod_negotiation提供内容协商的”多重视图”(MultiViews)。
SymLinksIfOwnerMatch 服务器仅在符号连接与其目的目录或文件的拥有者具有相同的uid时才使用它。

!注意: 如果此配置出现在 <Location> 配置段中,此选项将被忽略。 一般来说,如果一个目录被多次设置了Options ,则最特殊的一个会被完全接受(其它的被忽略),而各个可选项的设定彼此并不融合(参见配置段的合并)。
然而,如果所有作用于 Options 指令的可选项前都加有 “+”或”-” 符号,此可选项将被合并。
所有前面加有 “+” 号的可选项将强制覆盖当前的可选项设置,而所有前面有 “-” 号的可选项将强制从当前可选项设置中去除。

  • 没有任何”+”或”-“符号:

AllowOverride 指令是否启用 .htaccess 文件


说明 确定允许存在于.htaccess文件中的指令类型
语法 AllowOverride All
默认值 AllowOverride None (2.3.9 and later), AllowOverride All (2.3.8 and earlier)
作用域 directory
状态 核心(C)
模块 core
  • 当服务器发现一个 .htaccess 文件(由 AccessFileName 指定时),它需要知道在这个文件中声明的哪些指令能覆盖在此之前指定的配置指令。

  • 仅允许存在于配置段

  • 如果此指令被设置为None ,那么.htaccess 文件将被完全忽略。事实上,服务器根本不会读取.htaccess文件。

  • 当此指令设置为 All 时,所有具有”.htaccess作用域的指令都允许出现在.htaccess 文件中

  • 该指令类型可指示以下分组之一。(有关每个指令类型启用哪些指令的最新列表, 请参阅 override 类索引。)


指令名称 指令作用 指令
AuthConfig 允许使用与认证授权相关的指令 (AuthDBMGroupFile, AuthDBMUserFile, AuthGroupFile, AuthName, AuthType, AuthUserFile, Require, 等)。
FileInfo 允许使用控制文档类型 (ErrorDocument, ForceType, LanguagePriority, SetHandler, SetInputFilter, SetOutputFilter, and mod_mime Add * and Remove* directives),
控制文档元数据的指令 (Header, RequestHeader, SetEnvIf, SetEnvIfNoCase, BrowserMatch, CookieExpires, CookieDomain, CookieStyle, CookieTracking, CookieName),
mod_rewrite 中的指令 (RewriteEngine, RewriteOptions, RewriteBase, RewriteCond, RewriteRule),
mod_alias 中的指令 (Redirect, RedirectTemp, RedirectPermanent, RedirectMatch)
 mod_actions 中的 Action 指令。
Indexes 允许使用控制目录索引的指令 (AddDescription, AddIcon, AddIconByEncoding, AddIconByType, DefaultIcon, DirectoryIndex, FancyIndexing, HeaderName, IndexIgnore, IndexOptions, ReadmeName, etc.).
Limit 允许使用控制主机访问的指令 (Allow, Deny, Order)。
Options[=Option,…] 允许使用控制指定目录功能的指令 (OptionsXBitHack) 
可以在等号后面附加一个逗号分隔的(无空格的) Options 选项列表,用来控制允许 Options 指令使用哪些选项。
Nonfatal=
[Override|Unknown|All]
允许使用 AllowOverride选项将.htaccess中的语法错误视为非致命错误。不会导致内部服务器错误,将忽略不允许或无法识别的指令并记录警告:
Nonfatal = Override 将 AllowOverride 禁止的指令视为nonfatal。
Nonfatal = Unknown 将未知指令视为非致命指令。这包括由不存在的模块实现的拼写错误和指令。
Nonfatal = All 将上述两种视为非致命性。
  • 例:

参见

<Files> 指令 文件封装


说明 包含作用于匹配指定文件名的指令
语法 <Files filename> … </Files>
作用域 server config, virtual host, directory, .htaccess
覆盖项 All
状态 核心(C)
模块 core
  • <Files> 指令与 </Files> 指令配对使用,它提供了基于文件名的访问控制,类似于 <Directory>  <Location> 指令。
  • <Files> 在此配置段中定义的指令将作用于其基本名称 (不是完整的路径) 与指定的文件名相符的对象。
  • <Files> 段将根据它们在配置文件中出现的顺序被处理:
  • filename 参数应当是一个文件名或是一个包含通配符的字符串,其中 “?” 匹配任何单个字符,”*” 匹配任何字符串序列。
  • <Files> 默认值

  • 在 “~” 字符之后同样可以使用正则表达式。比如:

  • 也可以使用正则表达式,添加 ~字符。例如:

  • 将匹配最常见的 Internet 图形格式。推荐  <FilesMatch>  这是优选的。

!注意:与 <Directory> <Location段,<Files>段可以使用里面.htaccess的文件。这允许用户在逐个文件级别控制对自己文件的访问。

参阅

发表评论