Apache配置结构

2017-03-23 01:24:14 13724

Apache配置结构

Directory选项



块指的是文件系统中的目录,并指定Apache对于该目录的行为。 此目录块以角括号括起,并以单词“ Directory”开头,并指向文件系统中目录的路径。 目录块中设置的选项适用于指定的?录及其子目录。 以下是目录块的示例:

<Directory /srv/www/example.com/public_html/images>
    Order Allow,Deny
    Allow from all
    Deny 55.1
</Directory>


关于块的附加注释:

目录块不能彼此嵌套。

目录块可以嵌套在块中。

目录块中包含的路径可以包含通配符。 星号(例如*)将匹配任何系列的字符,而问号(例如?)将匹配任何单个字符。 如果需要控制所有虚拟主机的DocumentRoot的选项,这可能很有用。 如下行:

<Directory /srv/www/*/public_html>


File选项



如果需要进一步控制服务器上目录中的特定文件,可以使用指令。 这控制Web服务器关于单个文件的行为。 指令将应用于具有指定名称的任何文件。 例如,以下示例指令将匹配文件系统中名为roster.htm的任何文件:

<Files roster.htm>
     Order Allow,Deny
     Deny from all
</Files>

如果包含在块中,将应用于DocumentRoot中名为roster.htm的溜有文件或位于该主机的DocumentRoot中的目录。 如果指令包含在块中,则指定的选项将应用于目录中名为roster.htm的所有文件,或指定的目录的子目录中。

Location选项



虽然块控制Apache关于文件系统中位置的行为,但指令控制Apache关于客户端请求的特定路径的行为。 如果用户请求http://www.landui.com/webmail/inbox/,网络服务器将在DocumentRoot下的webmail /inbox /目录中查找,例如/srv/www/example.com/public_html/webmail/inbox/。 此功能的一个常见用途可能是允许脚本处理对给定路径发出的请求。 例如,以下块将指定路径的所有请求都定向到一个mod_python脚本:

<Location /webmail/inbox>
    SetHandler python-program
    PythonHandler modpython
    PythonPath "['/srv/www/example.com/application/inbox'] + sys.path"
</Location>

htaccess选项



除了上面讨论的配置方法,默认情况,Apache会从位于该目录中的文件读?目录的配置选项。 此文件通常称为.htaccess。 在您的httpd.conf和连接的文件中查找以下配置选项:

AccessFileName .htaccess
 
<Files ~ "^.ht">
    Order allow,deny
    Deny from all
</Files>

第一行告诉Apache在.htaccess文件中查找可公开访问的目录中的配置选项。 第二个指令指示Apache拒绝名称以.ht开头的文件的所有请求。 这将阻止访问者访问配置选项。
您可以更改AccessFileName以指定其他Apache可以查找这些配置选项的名称。 如果?改此选项,请务必更新指令以防止无意中的公开访问。 出于安全原因,不建议这样做。
块中的任何选项,都可以在.htaccess文件中配置。 .htaccess文件使得没有服务器权限的普通用户可以自己配置部署Apache选项。

“Match”指令和正则表达式



除了上述基本指令之外,Apache还允许服务器管理员在指定目录,文件和位置方面有一些额外的灵活性。 这些“Match”块和正则表达式定义的指令块允许管理员为一类目录,文件和位置定义一组配置选项。 这里是一个例子:

<DirectoryMatch "^.+/images">
    Order Allow,Deny
    Allow from all
    Deny 55.1
</DirectoryMatch>

此配置块指定与正则表达式^+ images匹配的目录的多个选项。 换句话说,以多个字符开头并以图片结尾的任何路径都将与这些选项匹配,包括以下路径:/srv/www/example.com/public_html/images/,/srv/www/example.com/public_html/objects/images和/home/username/public/www/images。

<Directory ~ "^.+/images">
    Order Allow,Deny
    Allow from all
    Deny 55.1
</Directory>

Apache提供类似的功能,可以在Location,Files使用正则表达式匹配一类目录或文件。 如下配置:

<Files ~ "^..+">
    Order allow,deny
    Deny from all
</Files>
 
<FilesMatch "^..+">
    Order allow,deny
    Deny from all
</FilesMatch>
 
<Location ~ "inbox$">
    Order Deny,Allow
    Deny from all
    Allow 192.168
</Location>
 
<LocationMatch "inbox$">
    Order Deny,Allow
    Deny from all
    Allow 192.168
</LocationMatch>

注意,上述指令是等效的,指令也是同样的。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: