国语自产精品视频在线看:您身边最放心的安全下载站! 最新软件|热门排行|软件分类|软件专题|厂商大全

国语自产精品视频在线看

技术教程
您的位置:首页服务器类Web服务器 → apache配置<Files> <FilesMatch> <Location><LocationMatch>指令

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

我要评论 2012/02/01 13:26:19 来源:国语自产精品视频在线看 编辑:downcc.com [ ] 评论:0 点击:5332次

<Files> 指令【zhǐ lìng】💌

说明        包含作【bāo hán zuò】👼用于匹配指定【pèi zhǐ dìng】文件【jiàn】名的指令【de zhǐ lìng】🍝
语法【yǔ fǎ】        <Files filename> ... </Files>
作用域【zuò yòng yù】        server config, virtual host, directory, .htaccess
覆盖项        All
状态🔧        核心【hé xīn】(C)
模块【mó kuài】        core

<Files>指令👭提供了【tí gòng le】基于文件【jiàn】😐名的访问【de fǎng wèn】控制,类似于<Directory>和【hé】🧗<Location>指令👭。它将配对一个【duì yī gè】</Files>指令👭。在【zài】🕡此配置段中定义的指令【de zhǐ lìng】🍝将作用于其基本🍒名称(不是完🌭整的路【zhěng de lù】径【jìng】)与【yǔ】指定的文件【jiàn】名相符【míng xiàng fú】的对象。<Files>段将根🤖据它们👶在【zài】🕡配置文【pèi zhì wén】件【jiàn】中出现的顺序被处【xù bèi chù】理:在【zài】🕡<Directory>段和【duàn hé】😓.htaccess文件【jiàn】被📶处理之后🏜,但在【zài】📇<Location>段之前。请注意🏻:<Files>能嵌入到🧙<Directory>段中以【duàn zhōng yǐ】限制它们作用的文件【jiàn】系统范围👱。

filename参数应【cān shù yīng】当是一个文件【jiàn】🚕名或是【míng huò shì】🚛一个包含通配📀符的字符串【chuàn】💘,其中🌱"?"匹配任【pǐ pèi rèn】何单个字符,"*"匹配任【pǐ pèi rèn】何字符串【chuàn】💘序列。在【zài】🕡"~"字符之后同样🆑可以使♍用正则【yòng zhèng zé】😙表达式。比如:

<Files ~ "\.(gif|jpe?g|png)$">

将匹配【jiāng pǐ pèi】🍀绝大部分常见的因特【de yīn tè】网图象【wǎng tú xiàng】格式🤼。然而在【zài】🕡Apache1.3及其后🏜继版本【jì bǎn běn】中,更推荐🏣使用🎖<FilesMatch>指令👭。

请注意🏻与【yǔ】<Directory>和【hé】🧗<Location>配置段不同的是:<Files>配置段可用于【kě yòng yú】.htaccess文件当【wén jiàn dāng】中。这将允【zhè jiāng yǔn】许用户【xǔ yòng hù】在文件【zài wén jiàn】🚺层面上控制对【kòng zhì duì】它们自己文件【jiàn】的访问【de fǎng wèn】。 

<FilesMatch> 指令【zhǐ lìng】💗

说明【shuō míng】        包含作用于与【yòng yú yǔ】🦂正则表达式匹🙀配的文件名的【jiàn míng de】指令【zhǐ lìng】🎬
语法🀄        <FilesMatch regex> ... </FilesMatch>
作用域        server config, virtual host, directory, .htaccess
覆盖项        All
状态        核心(C)
模块【mó kuài】        core

<FilesMatch>指令【zhǐ lìng】🎬就像🧤<Files>指令【zhǐ lìng】🎬一样提供了针【gòng le zhēn】对文件名的【jiàn míng de】访问控制。然而🕜,它使用的是正【de shì zhèng】🌪则表达式👋。比如说📘:

<FilesMatch "\.(gif|jpe?g|png)$">

将匹配最常见的internet图形文件格式【jiàn gé shì】😕。 

Include 指令

说明【shuō míng】🐠        在服务器配置文件【zhì wén jiàn】🛫中包含其它配置文件【zhì wén jiàn】🛫
语法【yǔ fǎ】        Include file-path|directory-path
作用域【zuò yòng yù】🏗        server config, virtual host, directory
状态😲        核心【hé xīn】(C)
模块        core
兼容性【jiān róng xìng】        通配符【tōng pèi fú】🐻仅在🔂Apache 2.0.41 及以后【jí yǐ hòu】🍫的版本中可用🤒

这个指【zhè gè zhǐ】令允许在服务器配置文件【zhì wén jiàn】🛫中加入【zhōng jiā rù】其它配置文件【zhì wén jiàn】🛫。

Shell风格(fnmatch())的通配符【tōng pèi fú】🐻可以用【kě yǐ yòng】于按照字母顺序一次【xù yī cì】包含多【bāo hán duō】个文🛰件【jiàn】。另外,如果Include指向了一个目录而不🍶是一个文件【jiàn】🛫,Apache将读入该目录【gāi mù lù】🛤及其子目录下的所有文🖼件【jiàn】,并依照字母顺序将这【xù jiāng zhè】⛲些文件【xiē wén jiàn】🧐作为配🚊置文件【zhì wén jiàn】🛫进行解析🕹。但是并不推荐这么做,因为偶🛷尔会有🔄临时文件【jiàn】🛫在这个目录中【mù lù zhōng】生成🥢,从而导致【zhì】📦httpd启动失【qǐ dòng shī】败。

文件的【wén jiàn de】🔎路径【lù jìng】可以是一个完整的绝对🎞路径【lù jìng】(以一个【yǐ yī gè】斜杠开🤕头):

Include /usr/local/apache2/conf/ssl.conf
Include /usr/local/apache2/conf/vhosts/*.conf

或是相🍚对于ServerRoot目录的【mù lù de】相对路😃径:

Include conf/ssl.conf
Include conf/vhosts/*.conf

请确保【qǐng què bǎo】包含的✳目录中【mù lù zhōng】不包含任何诸🤞如编辑【rú biān jí】器临时文件【jiàn】🛫等引起误✋导的文件【jiàn】🛫,因为Apache会尝试【huì cháng shì】读取它们并把其中的【qí zhōng de】👹内容作为配🚊置指令【zhì zhǐ lìng】来🎣处理【chù lǐ】,这样可🦔能会导【néng huì dǎo】致【zhì】📦启动过【qǐ dòng guò】程的失败。运行🚪apachectl configtest 将会把【jiāng huì bǎ】配置检查时所【chá shí suǒ】使用的所有文🖼件列出【jiàn liè chū】来以供参考。这将有【zhè jiāng yǒu】🐷助于检【zhù yú jiǎn】验配置中是否仅包含😬了您所🍛希望出现那些【xiàn nà xiē】文件【jiàn】🧐。

root@host# apachectl configtest
Processing config file: /usr/local/apache2/conf/ssl.conf
Processing config file: /usr/local/apache2/conf/vhosts/vhost1.conf
Processing config file: /usr/local/apache2/conf/vhosts/vhost2.conf
Syntax OK 

<Location> 指令【zhǐ lìng】🔴

说明        将封装【jiāng fēng zhuāng】的【de】指令【zhǐ lìng】🌎作用于【zuò yòng yú】🔈匹配的【pǐ pèi de】⛩URL
语法【fǎ】        <Location URL-path|URL> ... </Location>
作【zuò】用【yòng】域🥍        server config, virtual host
状态        核心【hé xīn】(C)
模块        core

<Location>提供了基于URL的【de】访问控制【wèn kòng zhì】。与【yǔ】<Directory>指令【zhǐ lìng】类似【sì】🤛,它也会【tā yě huì】启用【yòng】一🥖个以</Location>结尾的【jié wěi de】配置段【pèi zhì duàn】⛽。<Location>配置段【pèi zhì duàn】⛽的【de】处理【chù lǐ】位于【wèi yú】<Directory>, .htaccess, <Files>之后【zhī hòu】,并依照🐥在【zài】配置文件中出现的【de】顺序进【shùn xù jìn】👴行处理【chù lǐ】💫。

<Location>配置段【pèi zhì duàn】⛽完全独✈立于文件系🔐统之外【tǒng zhī wài】操🎯作【zuò】。这有几🥅个重要【gè chóng yào】的【de】后果🖇。最【zuì】重要的【de】是【shì】<Location>不能用【yòng】🥧于针对文件系🔐统的【de】访问控制【wèn kòng zhì】。因为可【yīn wéi kě】能会有几个不同的【de】🍤URL指向文😏件系统👓中的同【zhōng de tóng】🏟一个文【yī gè wén】件,所以这样的控【yàng de kòng】制常常【zhì cháng cháng】会被很容易的【de】🥅绕过。
何时【shí】👀使用【shǐ yòng】✡<Location>?

使用【shǐ yòng】✡<Location>来将指【lái jiāng zhǐ】令应用【yòng】✡于独立于文件系🔐统之外【tǒng zhī wài】的内容【de nèi róng】。文件系🔐统之内的内容【de nèi róng】请使用【shǐ yòng】✡<Directory>和<Files>指令【zhǐ lìng】。不过一【bú guò yī】🖍个例外【gè lì wài】🚝是【shì】<Location /> ,它可以方便的【de】😑作用于【zuò yòng yú】🔈所用【yòng】🆔URL。

对所有【duì suǒ yǒu】的【de】原始(非代理【fēi dài lǐ】🔆)请求【qǐng qiú】👺来说,匹配的【pǐ pèi de】⛩URL应该是【shì】具有"/path/"形式的【de】👉URL路径【lù jìng】🏧。不包括【bú bāo kuò】访问方🦖法【fǎ】、主机名✋、端口或【duān kǒu huò】查询字符串🥟等。对于代理的请【lǐ de qǐng】✖求【qiú】👺,匹配的【pǐ pèi de】⛩URL必须为"scheme://servername/path"的【de】形式🦌,而【ér】且必📦须包括【xū bāo kuò】🔶前缀✍。

URL可以用【yòng】✡一个通【yī gè tōng】配符字符串来🌡进行通配符的【de】处理【chù lǐ】。"?"匹配任何单个的【de】字符🏚,而【ér】"*"匹配所有字符序列❌。

也可以🛏附加"~"字符来【zì fú lái】🌆表示使【biǎo shì shǐ】🖇用【yòng】✡正则表【zhèng zé biǎo】达📟式。例如🖱:

<Location ~ "/(extra|special)/data">

将匹配【jiāng pǐ pèi】所有包【suǒ yǒu bāo】含字符串🥟"/extra/data"或"/special/data"的【de】URL。在【zài】Apache1.3及其后续版本中,加入了一个新的【de】推荐使用【shǐ yòng】✡的【de】<LocationMatch>指令【zhǐ lìng】,其功能【qí gōng néng】⏮与【yǔ】<Location>的正则【de zhèng zé】表达【biǎo dá】📟式版本【shì bǎn běn】相🗝同。

<Location>的【de】功能在【zài】与【yǔ】SetHandler指令【zhǐ lìng】联用【yòng】✡时【shí】👀能发挥最【zuì】💝大效能【dà xiào néng】🐰。比如🎛启用【yòng】✡状态请求【qǐng qiú】👺,但仅对➕来自foo.com的【de】用【yòng】✡户起效,您可以这样使用【shǐ yòng】✡:

<Location /status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from .foo.com
</Location>
请注意"/"(斜线【xié xiàn】🍃)

斜线【xié xiàn】🍃字符根据它在【zài】URL中出现的位置【de wèi zhì】不同有【bú tóng yǒu】着特殊的意义【de yì yì】。大家可能都已【néng dōu yǐ】经习惯【jīng xí guàn】🏓在【zài】文件系🔐统中,多个连续的【de】斜👘线【xiàn】🌂会被作【huì bèi zuò】为单【wéi dān】⌚一的【de】斜线【xié xiàn】🍃处理【chù lǐ】(例如🖱"/home ///foo"与【yǔ】"/home/foo"相同)。但在【dàn zài】🎅URL里面,这样是【zhè yàng shì】行不通的【de】。<LocationMatch>指令【zhǐ lìng】和🏠正则表【zhèng zé biǎo】达📟式版本【shì bǎn běn】的【de】<Location>要求【yào qiú】👺您明确【nín míng què】使用【shǐ yòng】✡多重斜线【xié xiàn】🍃。比如🎛:<LocationMatch ^/abc>将匹配【jiāng pǐ pèi】请求【qǐng qiú】👺"/abc"但不会匹配请求【qǐng qiú】👺"//abc"。而【ér】非正💵则表达【biǎo dá】📟式版本【shì bǎn běn】的【de】<Location>指令在【zhǐ lìng zài】🧟用【yòng】于代🍡理请求【qǐng qiú】🍰时【shí】👀,也有类🚗似【sì】🤛表现。但当非【dàn dāng fēi】🌰正则表【zhèng zé biǎo】达📟式版本【shì bǎn běn】的【de】<Location>作用于【zuò yòng yú】🔈非代理【fēi dài lǐ】🔆请求【qǐng qiú】👺时【shí】👀,它会将多个毗邻的【de】斜线【xié xiàn】🍃认作【zuò】单个斜线【xié xiàn】🍃。比如🎛,如果您【rú guǒ nín】指定了<Location /abc/def>而【ér】请求【qǐng qiú】🐉是指向【shì zhǐ xiàng】"/abc//def"的【de】,那么它们就是【shì】匹配的【pǐ pèi de】⛩。 

<LocationMatch> 指令【zhǐ lìng】📏

说明        将封装的【de】🥪指令作用于正【yòng yú zhèng】则表达式😫匹配的【de】🍋URL
语法        <LocationMatch regex> ... </LocationMatch>
作用域        server config, virtual host
状态        核心(C)
模块        core

<LocationMatch>和【hé】⛏<Location>指令相【zhǐ lìng xiàng】同,提供了基于【jī yú】URL的【de】访问✔控制【kòng zhì】。但它使【dàn tā shǐ】用正则【yòng zhèng zé】⚪表达式😫作为参【zuò wéi cān】数🛡,而不是简单字符串【chuàn】。比如💂:

<LocationMatch "/(extra|special)/data">

将匹配【jiāng pǐ pèi】包含子串【chuàn】"/extra/data"或🏎"/special/data"的【de】🥪URL。

关键词:apache

阅读本文后您有什么感想? 已有 人给出评价!

  • 35 欢迎喜欢
  • 705 白痴
  • 48 拜托
  • 101 哇
  • 114 加油
  • 50 鄙视