- :和用于封装一组指令,使之仅对某个目录及其子目录生效。
语法: …
Directory-path可以是一个目录的完整路径,或是包含了Unix shell匹配语法的通配符字符串。在通配符字符串中,"?“匹配任何单个的字符,”*"匹配任何字符序列。也可以使
用"[]“来确定字符范围。在”~" 字符之后也可以使用正则表达式。
如果有多个(非正则表达式)配置段符合包含某文档的目录(或其父目录),那么指令将以短目录优先的规则进行应用,并包含.htaccess文件中的指令。
正则表达式将在所有普通配置段之后予以考虑。所有的正则表达式将根据它们出现在配置文件中的顺序进行应用。
指令不可被嵌套使用,也不能出现在或配置段中。
- :提供基于文件名的访问控制,类似于和指令。
语法: …
filename参数应当是一个文件名或是一个包含通配符的字符串,其中"?“匹配任何单个字符,”*“匹配任何字符串序列。在”~"字符之后可以使用正则表达式。
在此配置段中定义的指令将作用于其基本名称(不是完整的路径)与指定的文件名相符的对象。段将根据它们在配置文件中出现的顺序被处理:在段和.htaccess
文件被处理之后,但在段之前。能嵌入到段中以限制它们作用的文件系统范围,也可用于.htaccess文件当中,以允许用户在文件层面上控制对它们
自己文件的访问。
- :封装根据指定的模块是否启用而决定是否生效的指令。
语法:<IfModule [!]module-file|module-identifier> …
module-file是指编译模块时的文件名,比如mod_rewrite.c 。
module-identifier是指模块的标识符,比如mod_rewrite 。
在配置段中的指令仅当测试结果为真的时候才进行处理,否则所有其间的指令都将被忽略。
- Options:控制在特定目录中将使用哪些服务器特性
语法:Options [+|-]option [[+|-]option] …
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时才使用它。 如果此配置出现在配置段中,则将被忽略。
一般来说,如果一个目录被多次设置了Options ,则最特殊的一个会被完全接受(其它的被忽略),而各个可选项的设定彼此并不融合。然而,如果所有作用于Options指令的可选项
前都加有"+" 或"-“符号,此可选项将被合并。所有前面加有”+“号的可选项将强制覆盖当前的可选项设置,而所有前面有”-"号的可选项将强制从当前可选项设置中去除。
- AllowOverride:确定允许存在于.htaccess文件中的指令类型。
语法:AllowOverride All|None|directive-type [directive-type] …
如果此指令被设置为None ,那么.htaccess文件将被完全忽略。事实上,服务器根本不会读取.htaccess文件。
当此指令设置为All时,所有具有".htaccess"作用域的指令都允许出现在.htaccess文件中。
directive-type可以是下列各组指令之一:
AuthConfig 允许使用与认证授权相关的指令
FileInfo 允许使用控制文档类型的指令、控制文档元数据的指令、mod_rewrite中的指令、mod_actions中的Action指令
Indexes 允许使用控制目录索引的指令
Limit 允许使用控制主机访问的指令
Options[=Option,…] 允许使用控制指定目录功能的指令(Options和XBitHack)。可以在等号后面附加一个逗号分隔的(无空格的)Options选项列表,用来控制允许Options指令
使用哪些选项。
AllowOverride仅在不包含正则表达式的配置段中才是有效的。在, , 配置段中都是无效的。
Order:控制默认的访问状态与Allow和Deny指令生效的顺序。
Ordering取值范围是以下几种范例之一:
Deny,Allow Deny指令在Allow指令之前被评估。默认允许所有访问。任何不匹配Deny指令或者匹配Allow指令的客户都被允许访问。
Allow,Deny Allow指令在Deny指令之前被评估。默认拒绝所有访问。任何不匹配Allow指令或者匹配Deny指令的客户都将被禁止访问。
Mutual-failure 只有出现在Allow列表并且不出现在Deny列表中的主机才被允许访问。这种顺序与"Order Allow,Deny"具有同样效果,不赞成使用。
关键字只能用逗号分隔,它们之间不能有空格,在所有情况下每个Allow和Deny指令语句都将被评估。
Allow:控制哪些主机可以访问服务器的该区域。可以根据主机名、IP地址、 IP地址范围或其他环境变量中捕获的客户端请求特性进行控制。
语法:Allow from all|host|env=env-variable [host|env=env-variable] …
这个指令的第一个参数总是"from",随后的参数可以有三种不同形式:如果指定"Allow from all",则允许所有主机访问,按照下述Deny和Order指令的配置;若要只允许特定的主
机或主机群访问服务器,host可以用下面任何一种格式来指定:一个(部分)域名、完整的IP地址、部分IP地址、网络/掩码、网络/nnn无类别域间路由规格;第三种参数格式允许
对服务器的访问由环境变量的一个扩展指定,指定"Allow from env=env-variable"时,如果环境变量env-variable存在则访问被允许,使用由mod_setenvif提供的指令,服务器用
一种基于客户端请求的弹性方式提供了设置环境变量的能力。因此,这条指令可以用于允许基于像User-Agent(浏览器类型)、Referer或其他 HTTP请求头字段的访问。
Deny:控制哪些主机被禁止访问服务器的该区域。可以根据主机名、IP地址、 IP地址范围或其他环境变量中捕获的客户端请求特性进行控制。
语法:Deny from all|host|env=env-variable [host|env=env-variable] …
此指令的参数设置和Allow指令完全相同。
- DirectoryIndex:当客户端请求一个目录时寻找的资源列表。
语法:DirectoryIndex Local-url [Local-url] …
Local-url(%已解码的)是一个相对于被请求目录的文档的URL(通常是那个目录中的一个文件)。可以指定多个URL,服务器将返回最先找到的那一个,比如:
DirectoryIndex index.html index.php