綠色資源網(wǎng):您身邊(biān)最放心的安全下載站! 最新軟件(jiàn)|熱門排行|軟件分類|軟件專題|廠商大全

綠色資源網

技術教程
您的位置(zhì):首頁服務器類Web服務(wù)器 → apache配置<Files> <FilesMatch> <locations><locationsMatch>指令

apache配置<Files> <FilesMatch> <locations><locationsMatch>指令

我要評論(lùn) 2012/02/01 13:26:19 來源:綠色(sè)資源網 編輯:ynaad.com [ ] 評論:0 點擊:5332次

<Files> 指令

說明        包含作用於匹配指定(dìng)文件名的指令
語法        <Files filename> ... </Files>
作用域        server config, virtual host, directory, .htaccess
覆蓋項        All
狀態        核心(C)
模塊        core

<Files>指令提供了基於文件名的訪問控製,類(lèi)似於<Directory>和<locations>指令。它將配對一個</Files>指令。在此配置段中定義的(de)指令將作用於其基本名稱(chēng)(不是完整的路徑)與指定的文件名相符的對象。<Files>段將根據它們在配置文件中出現的順序(xù)被處理:在<Directory>段和.htaccess文件被處(chù)理之後,但在<locations>段之前。請注(zhù)意(yì):<Files>能嵌入(rù)到<Directory>段中以限製它們作(zuò)用的文件係統範圍。

filename參數應當是一個文件名或是一個包含通配符(fú)的字符串,其中"?"匹配任何單個字符,"*"匹配任何(hé)字符串序列。在(zài)"~"字符之後同樣可以使用正則表達式。比如:

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

將匹配(pèi)絕大部分常見的因特網圖(tú)象格式。然而在Apache1.3及其(qí)後繼版本中,更推薦使用<FilesMatch>指令。

請注意與<Directory>和(hé)<locations>配置段不同的是:<Files>配置段可(kě)用於.htaccess文件(jiàn)當中。這將允許用戶在文件層麵上控製對它們自己文件的訪問。 

<FilesMatch> 指令(lìng)

說明        包含作用於與正則表達式(shì)匹配(pèi)的文件名的指令(lìng)
語法        <FilesMatch regex> ... </FilesMatch>
作用域        server config, virtual host, directory, .htaccess
覆蓋項        All
狀態        核心(C)
模塊        core

<FilesMatch>指令就像<Files>指令一樣提供了針對文件名的訪問控製。然而,它使用的是正則表達式。比如說:

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

將匹(pǐ)配最(zuì)常見的internet圖形文件格式(shì)。 

Include 指令

說(shuō)明        在服務(wù)器(qì)配置文件中包含其它配置文件
語法        Include file-path|directory-path
作用域        server config, virtual host, directory
狀態        核心(C)
模塊        core
兼容性        通配符僅在Apache 2.0.41 及以後的版本中可用

這個(gè)指令允許在服務器配置文件中加入其它配置文件。

Shell風格(fnmatch())的(de)通配符可以用於按照字母順序一次包含多個(gè)文(wén)件。另外,如果Include指向了一個目(mù)錄而不是一個文件,Apache將讀入(rù)該目錄及其子目錄下的所有文件(jiàn),並依照字(zì)母順序將(jiāng)這些文件作為配(pèi)置文件進行解析。但(dàn)是並不推薦這麽做,因為偶(ǒu)爾會有臨時文件在這個目錄中生成,從而導致httpd啟動失敗。

文(wén)件的路徑可以是(shì)一個完整的(de)絕對路(lù)徑(以一個斜杠開頭):

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

或是相對於ServerRoot目錄的相對路徑:

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

請確(què)保包含的目錄中(zhōng)不包含任何諸如編輯(jí)器臨時文(wén)件等引起誤導(dǎo)的文件,因為Apache會(huì)嚐試(shì)讀取它們並把其中的(de)內(nèi)容作為配置指令來處理,這樣(yàng)可能會導致啟動過程的失敗(bài)。運行apachectl configtest 將會把配置檢查時所使用的所有文件列出來以供參考(kǎo)。這將有助於檢驗配置中是否僅包(bāo)含了您所希望出現那些文件。

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 

<locations> 指令

說(shuō)明(míng)        將封裝的(de)指令作(zuò)用於匹配的URL
語法        <locations URL-path|URL> ... </locations>
作用域        server config, virtual host
狀態        核心(C)
模塊        core

<locations>提供了基於URL的訪問控製。與<Directory>指令類似,它也會啟用一個以</locations>結尾的(de)配置段。<locations>配置段的處理位於<Directory>, .htaccess, <Files>之後,並依照在配置文件中出現的順序進行處理。

<locations>配置段完全獨立於文件係統之外操作。這有幾個重要的後(hòu)果。最重(chóng)要的(de)是<locations>不能用於針對文件係統的訪問控製。因為可能會(huì)有幾(jǐ)個不同的URL指向文件係(xì)統中的同一個文件,所以這(zhè)樣的控製常(cháng)常會被很容易的繞過。
何時使用<locations>?

使用<locations>來將指令應用於獨立於文(wén)件係統之外的內容(róng)。文件係統之內的內容請使(shǐ)用<Directory>和<Files>指令。不過一個例外是<locations /> ,它可以方便的作用(yòng)於所用URL。

對所有的(de)原始(非代理)請求來說,匹配的URL應該是具有"/path/"形式的URL路(lù)徑。不包括訪問方(fāng)法、主機名、端口或查詢字符串等。對於代理的請求,匹配的URL必須為"scheme://servername/path"的形式,而且(qiě)必須包括前綴。

URL可(kě)以用一個通配符字符串來進行通配符的處理。"?"匹配任何單個的字符,而"*"匹配所有字符序列(liè)。

也可以附加"~"字符來表示使用正則表達式(shì)。例如:

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

將匹配所有包含字符串"/extra/data"或"/special/data"的URL。在Apache1.3及其後續版本中,加入了一個新(xīn)的推薦使用的<locationsMatch>指令,其功能(néng)與(yǔ)<locations>的正則表達式版本相同。

<locations>的(de)功能在與SetHandler指令聯用時能發揮最大(dà)效能。比(bǐ)如啟用狀態(tài)請求,但僅對來自foo.com的用戶起效,您可以這樣使用:

<locations /status>
SetHandler server-status
Order Deny,Allow
Deny from all
Allow from .foo.com
</locations>
請注意"/"(斜線)

斜線字符根據它在URL中出現的位置不(bú)同有著特殊的(de)意義。大家可能都已經習慣在文(wén)件係統中,多個連續的斜線會被作為單一的斜(xié)線處理(例如"/home ///foo"與"/home/foo"相同)。但在URL裏(lǐ)麵,這樣是行(háng)不通的。<locationsMatch>指令和正則表(biǎo)達式版本的<locations>要求您明確使用多重斜線。比如:<locationsMatch ^/abc>將匹配請(qǐng)求"/abc"但不會匹配(pèi)請求"//abc"。而非正則表達式版(bǎn)本的<locations>指令在用(yòng)於代理請求時,也有類似表現。但當非正則表達式版本的<locations>作(zuò)用於非代理請求時(shí),它會將多個毗鄰的斜線認作單個斜(xié)線。比如,如果您指定了<locations /abc/def>而請求是指向"/abc//def"的,那麽它們就是匹配的。 

<locationsMatch> 指(zhǐ)令

說明        將封裝的指令作用於正則表達式匹配的URL
語法        <locationsMatch regex> ... </locationsMatch>
作用域(yù)        server config, virtual host
狀(zhuàng)態        核心(C)
模塊        core

<locationsMatch>和<locations>指令相同,提供了基於URL的訪問(wèn)控(kòng)製。但它使用正則表達式作為參數(shù),而不是簡單字符串。比如:

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

將匹配包含子串"/extra/data"或"/special/data"的URL。

關鍵(jiàn)詞:apache

閱讀本文後您有什麽感(gǎn)想? 已有 人給出評價!

  • 35 歡迎喜歡
  • 705 白(bái)癡
  • 48 拜托
  • 101 哇
  • 114 加油
  • 50 鄙視
免费人欧美成又黄又爽的视频丨一本色道久久88综合日韩精品丨国产专区日韩精品欧美色丨午夜无遮挡男女啪啪视频丨国产欧美日韩综合精品一区二区丨亚洲精品无码不卡在线播HE丨亚洲精品国产精品国自产观看丨日韩国产高清av不卡