Apache Options指令詳解

來源:互聯網
上載者:User

標籤:指令碼   分享圖片   over   ali   導致   出現   cto   apache伺服器   服務   

Options指令是Apache設定檔中一個比較常見也比較重要的指令,Options指令可以在Apache伺服器核心配置(server config)、虛擬機器主機配置(virtual host)、特定目錄配置(directory)以及.htaccess檔案中使用。Options指令的主要作用是控制特定目錄將啟用哪些伺服器特性。

Options指令常見的配置範例程式碼如下:

  1. <Directory />
  2. #指定根目錄"/"啟用Indexes、FollowSymLinks兩種特性。
  3.     Options Indexes FollowSymLinks
  4.     AllowOverride all
  5.     Order allow,deny
  6.     Allow from all
  7. </Directory>

Options指令的完整文法為:Options [+|-]option [[+|-]option] ...。簡而言之,Options指令後可以附加指定多種伺服器特性,特性選項之間以空格分隔。下面我們來看看Options指令後可以附加的特性選項的具體作用及含義(Apache配置中的內容均不區分大小寫):

All
表示除 MultiViews之外的所有特性。這也是Options指令的 預設設定
None
表示不啟用任何的伺服器特性。
FollowSymLinks
伺服器允許在此目錄中使用符號串連。如果該配置選項位於 <Location>配置段中,將會被忽略。
Indexes
如果輸入的網址對應伺服器上的一個檔案目錄,而此目錄中又沒有 DirectoryIndex指令(例如: DirectoryIndex index.html index.php),那麼伺服器會返回由 mod_autoindex模組產生的一個格式化後的目錄列表,並列出該目錄下的所有檔案(如)。

MultiViews
允許使用 mod_negotiation模組提供內容協商的"多重視圖"。簡而言之,如果用戶端請求的路徑可能對應多種類型的檔案,那麼伺服器將根據用戶端請求的具體情況自動選擇一個最匹配用戶端要求的檔案。例如,在伺服器網站的 file檔案夾下中存在名為 hello.jpghello.html的兩個檔案,此時使用者輸入 Http://localhost/file/hello,如果在 file檔案夾下並沒有 hello子目錄,那麼伺服器將會嘗試在 file檔案夾下尋找形如 hello.*的檔案,然後根據使用者請求的具體情況返回最匹配要求的 hello.jpg或者 hello.html
SymLinksIfOwnerMatch
伺服器僅在符號串連與目標檔案或目錄的所有者具有相同的使用者ID時才使用它。簡而言之,只有當符號串連和符號串連指向的目標檔案或目錄的所有者是同一使用者時,才會使用符號串連。如果該配置選項位於 <Location>配置段中,將會被忽略。
ExecCGI
允許使用 mod_cgi模組執行CGI指令碼。
Includes
允許使用 mod_include模組提供的伺服器端包含功能。
IncludesNOEXEC
允許伺服器端包含,但禁用"#exec cmd"和"#exec cgi"。但仍可以從 ScriptAlias目錄使用"#include virtual"虛擬CGI指令碼。

此外,比較細心的讀者應該注意到,Options指令文法允許在配置選項前加上符號"+"或者"-",那麼這到底是什麼意思呢。

實際上,Apache允許在一個目錄配置中設定多個Options指令。不過,一般來說,如果一個目錄被多次設定了Options,則指定特性數量最多的一個Options指令會被完全接受(其它的被忽略),而各個Options指令之間並不會合并。但是如果我們在可選配置項前加上了符號"+"或"-",那麼表示該可選項將會被合并。所有前面加有"+"號的可選項將強制覆蓋當前的可選項設定,而所有前面有"-"號的可選項將強制從當前可選項設定中去除。你可以參考下面的例子:

  1. #樣本1
  2. <Directory /web/file>
  3. Options Indexes FollowSymLinks
  4. </Directory>
  5.  
  6. <Directory /web/file/image>
  7. Options Includes
  8. </Directory>
  9. #目錄/web/file/image只會被設定Includes特性
  1. #樣本2
  2. <Directory /web/file>
  3. Options Indexes FollowSymLinks
  4. </Directory>
  5.  
  6. <Directory /web/file/image>
  7. Options +Includes -Indexes
  8. </Directory>
  9. #目錄/web/file/image將會被設定Includes、FollowSymLinks兩種特性

備忘1:混合使用前面帶"+"/"-"和前面不帶"+"/"-"的同一可選項,可能會導致出現意料之外的結果。

備忘2:使用-IncludesNOEXEC-Includes時,不論前面如何設定,都會完全禁用伺服器端包含。

Apache Options指令詳解

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.