中国投资网 百科 apache配置<Files> <FilesMatch> <Location><LocationMatch>指令

apache配置<Files> <FilesMatch> <Location><LocationMatch>指令

文件说明

包含匹配指定文件名的指令。

语法文件文件名./文件

作用域serverconfig,虚拟主机,目录,htaccess

覆盖所有项目

核心(c)

模块核心

Files指令提供基于文件名的访问控制,类似于目录和位置指令。它将与/Files指令成对出现。此配置部分中定义的指令将应用于基本名称(非完整路径)与指定文件名匹配的对象。文件将按照它们在配置文件中出现的顺序进行处理:在目录段和。htaccess文件,但在位置段之前。请注意:文件可以嵌入到目录段中,以限制它们工作的文件系统的范围。

filename参数应该是文件名或包含通配符的字符串,其中“?”匹配任何单个字符,“*”匹配任何字符串序列。在“~”字符后也可以使用正则表达式。例如:

文件~ '\。(gif|jpe?g|png)$ '

将匹配大多数常见的互联网图像格式。但是,在Apache1.3及其后续版本中,更推荐使用FilesMatch指令。

请注意,与目录和位置配置部分不同,文件配置部分可以在中使用。htaccess文件。这将允许用户在文件级别控制对他们自己的文件的访问。

匹配命令

包含对匹配正则表达式的文件名起作用的指令。

语法文件匹配正则表达式./FilesMatch

作用域serverconfig,虚拟主机,目录,htaccess

覆盖所有项目

核心(c)

模块核心

FilesMatch指令为文件名提供访问控制,就像Files指令一样。但是,它使用正则表达式。例如:

文件匹配。(gif|jpe?g|png)$ '

将匹配最常见的互联网图形文件格式。

包括说明

说明服务器配置文件中包含其他配置文件。

语法包括文件路径|目录路径

作用域serverconfig,虚拟主机,目录

核心(c)

模块核心

通配符兼容性仅在Apache 2.0.41和更高版本中可用。

此指令允许将其他配置文件添加到服务器配置文件中。

Shell风格的通配符(fnmatch())可用于按字母顺序一次包含多个文件。此外,如果Include指向一个目录而不是一个文件,Apache将读入该目录及其子目录中的所有文件,并按字母顺序将它们解析为配置文件。但是,不建议这样做,因为偶尔会在这个目录中生成临时文件,这会导致httpd启动失败。

文件的路径可以是完整的绝对路径(以斜杠开头):

包括/usr/local/Apache 2/conf/SSL . conf

包括/usr/local/Apache 2/conf/vhosts/*。会议

或服务器根目录的相对路径:

包含conf/ssl.conf

包括conf/vhosts/*。会议

请确保包含的目录不包含编辑器临时文件等任何误导性文件,因为Apache会尝试读取这些文件,并将其内容视为配置指令,这可能会导致启动过程失败。运行apachectl configtest将列出配置检查中使用的所有文件以供参考。这将有助于验证配置是否只包含您希望显示的那些文件。

root@host# apachectl配置测试

正在处理配置文件:/usr/local/Apache 2/conf/SSL . conf

正在处理配置文件:/usr/local/Apache 2/conf/vhosts/vhost 1 . conf

正在处理配置文件:/usr/local/Apache 2/conf/vhosts/vhost 2 . conf

语法正常

位置指令

说明封装的指令将应用于匹配的URL。

语法位置URL-路径| URL./位置

作用域服务器配置,虚拟主机

核心(c)

模块核心

位置提供基于URL的访问控制。与目录指令类似,它也启用以/Location结尾的配置段。位置部分在目录之后处理。htaccess和文件,并按照它在配置文件中出现的顺序进行处理。

位置段完全独立于文件系统。这有几个重要的后果。最重要的是位置不能用于文件系统的访问控制。因为在文件系统中可能有几个不同的URL指向同一个文件,所以这种控制通常很容易被绕过。

何时使用位置?

使用位置将指令应用于独立于文件系统的内容。请对系统中的内容使用目录和文件命令。但是,Location/是一个例外,它可以方便地应用于所使用的URL。

对于所有原始(非代理)请求,匹配的URL应该是格式为“/path/”的URL路径。包括访问方法、主机名、端口或查询字符串等。对于代理的请求,匹配的URL必须采用“scheme://servername/path”的形式,并且必须包含前缀。

URL可以用通配符字符串来处理。''匹配任何单个字符,而“*”匹配所有字符序列。

您还可以附加一个“~”字符来指示正则表达式的使用。例如:

位置~ '/(额外|特殊)/数据'

将匹配所有包含字符串“/extra/data”或“/special/data”的URL。在Apache1.3及其以后的版本中,增加了新的推荐LocationMatch指令,其功能与Location的正则表达式版本相同。

当与SetHandler命令结合使用时,Location函数可以实现最佳性能。例如,状态请求已启用,但它仅适用于来自foo.com的用户。你可以这样使用它:

位置/状态

SetHandler服务器-状态

订单拒绝,允许

全部否认

允许来自. foo.com

/位置

请注意'/'(斜线)

根据斜杠字符在URL中的位置,它具有特殊的含义。大家大概都习惯了在文件系统中把多个连续的斜杠当作单个斜杠(比如'/home//foo '和'/home/foo '是一样的)。但是在URL中,这是行不通的。match指令和正则表达式版本的位置要求您显式使用多个斜杠。例如,LocationMatch ^/abc将匹配请求'/abc '但不匹配请求'/abc '然而,位置指令的非正则表达式版本在用于代理请求时具有类似的性能。但是,当Location的非正则表达式版本作用于非代理请求时,它会将多个相邻的斜杠识别为单个斜杠。例如,如果您指定Location /abc/def,而请求指向'/abc//def '那么它们匹配。

匹配指令

说明封装指令应用于正则表达式匹配的URL。

语法位置匹配正则表达式./位置匹配

作用域服务器配置,虚拟主机

核心(c)

模块核心

match和LocationMatch指令是相同的,都提供了基于URL的访问控制。但是它使用正则表达式作为参数,而不是简单的字符串。例如:

location match '/(extra | special)/data '

将匹配包含子字符串“/extra/data”或“/special/data”的URL。

本文来自网络,不代表本站立场,转载请注明出处:https:

apache配置<Files>,<FilesMatch>,<Location><LocationMatch>指令

中国投资网后续将为您提供丰富、全面的关于apache配置<Files>,<FilesMatch>,<Location><LocationMatch>指令内容,让您第一时间了解到关于apache配置<Files>,<FilesMatch>,<Location><LocationMatch>指令的热门信息。小编将持续从百度新闻、搜狗百科、微博热搜、知乎热门问答以及部分合作站点渠道收集和补充完善信息。