IndexOptions FancyIndexing AddIconByEncoding (CMP,/icons/compressed.gif) x-compress x-gzip AddIconByType (TXT,/icons/text.gif) text/* AddIconByType (IMG,/icons/image2.gif) image/* AddIconByType (SND,/icons/sound2.gif) audio/* AddIconByType (VID,/icons/movie.gif) video/* AddIcon /icons/binary.gif .bin .exe AddIcon /icons/binhex.gif .hqx AddIcon /icons/tar.gif .tar AddIcon /icons/world2.gif .wrl .wrl.gz .vrml .vrm .iv AddIcon /icons/compressed.gif .Z .z .tgz .gz .zip AddIcon /icons/a.gif .ps .ai .eps AddIcon /icons/layout.gif .html .shtml .htm .pdf AddIcon /icons/text.gif .txt AddIcon /icons/c.gif .c AddIcon /icons/p.gif .pl .py AddIcon /icons/f.gif .for AddIcon /icons/dvi.gif .dvi AddIcon /icons/uuencoded.gif .uu AddIcon /icons/script.gif .conf .sh .shar .csh .ksh .tcl AddIcon /icons/tex.gif .tex AddIcon /icons/bomb.gif core AddIcon /icons/back.gif .. AddIcon /icons/hand.right.gif README AddIcon /icons/folder.gif ^^DIRECTORY^^ AddIcon /icons/blank.gif ^^BLANKICON^^ DefaultIcon /icons/unknown.gif #AddDescription "GZIP compressed document" .gz #AddDescription "tar archive" .tar #AddDescription "GZIP compressed tar archive" .tgz ReadmeName README HeaderName HEADER IndexIgnore .??* *~ *# HEADER* README* RCS CVS *,v *,t 當一個HTTP請求的URL為一個目錄的時候,服務器返回這個目錄中的索引文件。但如果一個目錄中不存在缺省的索引文件,並且該服務器又許可顯示目錄文件列表的時候,就會顯示出這個目錄中的文件列表,為了使得這個文件列表能具有可理解性,而不僅僅是一個簡單的列表,就需要前面的這些設置參數。 如果使用了IndexOptions FancyIndexing選項,可以讓服務器產生的目錄列 表中針對各種不同類型的文檔引用各種圖標。而哪種文件使用哪種圖標,則使用 下面的 AddIconByEncoding、AddIconByType以及AddIcon來定義,分別依據MIME 的編碼、類型以及文件的後綴來判斷使用何種圖標。如果不能確定文檔使用的圖標,就使用 DefaultIcon定義的缺省圖標。 同樣,使用AddDescription可以為不同類型的文檔加入不同的描述。並且, 服務器還在目錄下,查詢使用ReadmeName和HeaderName定義的文件(自動加上 . html後綴,如果沒有發現,再使用.txt後綴進行搜索),如果發現了這些文件, 就在文件列表之前首先顯示這些文件的內容,以使得普通目錄列表具備更大的可 理解性。 IndexIgnore讓服務器在列出文件列表時忽略相應的文件, 這裡使用模式配 置的方式定義文件名。 AddEncoding x-compress Z AddEncoding x-gzip gz AddEncoding用於告訴一些使用壓縮的MIME類型,這樣可以讓浏覽器進行解壓縮操作。 AddLanguage en .en AddLanguage fr .fr AddLanguage de .de AddLanguage da .da AddLanguage el .el AddLanguage it .it LanguagePriority en fr de 一個HTML文檔可以同時具備多個語言的版本,如對於file1.html文檔可以具 備file1.html.en、file1.html.fr 等不同的版本,每個語言後綴必須使用 AddLanguage進行定義。這樣服務器可以針對不同國家的客戶,通過與浏覽器進行協商,發送不同的語言版本。而LanguagePriority 定義不同語言的優先級,以便在浏覽器沒有特殊要求時,按照順序使用不同的語言版本回應對file1.html 的請求。 這個國際化的能力實際的應用並不多。 #AddType application/x-httpd-php .phtml #AddType application/x-httpd-php-source .phps AddType參數可以為特定後綴的文件指定MIME類型,這裡的設置將覆蓋 mime.types中的設置。 #AddHandler cgi-script .cgi AddHandler是用於指定非靜態的處理類型,用於定義文檔為一個非靜態的文 檔類型,需要進行處理,再向浏覽器返回處理結果。例如上面注釋中的設置是將以.cgi結尾的文件設置為cgi-script類型,那麼服務器將啟動這個CGI程序以進行處理。如果需要在前面AliasScript定義的路徑之外執行CGI程序,就需要使用這個參數進行設置,此後以.cgi結尾的文件將被當作CGI程序執行。 在配置文件、這個目錄中的.htaccess以及其上級目錄的.htaccess中必須允許執行CGI程序,這需要通過Options ExecCGI參數設定。 #AddType text/html .shtml #AddHandler server-parsed .shtml 另外一種動態進行處理的類型為server-parsed,由服務器自身預先分析網頁內的標記,將標記更改為正確的HTML標識。由於server-parsed需要對text/html 類型的文檔進行處理,因此首先定義了對應的.shtml為text/html類型。 然而要支持SSI,還要首先要在配置文件(或.htaccess)中使用Options Includes允許該目錄下的文檔可以為SSI類型,或使用Options IncludesNOExec讓執行普通的SSI標志,但不執行其中引用的外部程序。 另一種指定server-parsed類型的方式為使用XBitBack設置選項,如果將 XBitHack設置為On,服務器將檢查所有text/html類型的文檔(包括.html後綴的文檔),如果發現文件屬性具備執行位 “x",則服務器就認為它是服務器分析文檔,需要服務器進行處理。推薦使用AddHandler進行設置,而將XBitBack 設置為Off,因為使用XBitBack將對所有的HTML文檔都執行額外的檢查,降低了效率。 #AddHandler send-as-is asis #AddHandler imap-file map #AddHandler type-map var 上面被注釋的AddHandler用於支持Apache服務器的asis、map和var處理能力 。 # Action media/type /cgi-script/location # Action handler-name /cgi-script/location 因為Apache內部提供的處理功能有限,因此可以使用Action為服務器定義外 部程序作為可處理的動態文檔類型,這些外部程序與標准CGI程序相同,都是對輸入的數據處理之後,再輸出不同MIME類型的結果。例如要定義一個對特殊後綴wri都先執行wri2txt進行處理操作,再返回結果的操作,可以使用: Action windows-writer /bin/wri2txt AddHandler windows-writer wri 更進一步,可以直接使用Action定義對某個MIME類型預先進行處理操作,這 需要例子中第一種格式的Action 參數設置方式。這樣設置方式就不再需要額外的AddHandler用來將處理操作與文件後綴聯系起來,而是使用Action直接處理MIME類型的文件。但如果文檔後綴沒有正式的MIME類型,還需要先定義一個MIME類型。 #MetaDir .web #MetaSuffix .meta Meta信息是在文檔發送給客戶之前,預先發送給客戶浏覽器一些數據,因此 浏覽器可以通過HEAD請求來訪問這些Meta信息而不必真正通過GET來返回全部文檔數據。服務器通常發送給浏覽器的是一些標准的HTTP頭信息,如果要想增加額外的信息,就需要使用MetaDir來定義Meta數據存放的目錄, 而MetaS uffix用於指定包含Meta數據的文件後綴。 #ErrorDocument 500 "The server made a boo boo. #ErrorDocument 404 /missing.html #ErrorDocument 404 /cgi-bin/missing_handler.pl #ErrorDocument 402 http://some.other_server.com/subscription_info.html 如果客戶請求的網頁不存在,或者沒有訪問權限等情況發生時,服務器將產 生一個錯誤代碼,同時也將回應客戶浏覽器一個標識錯誤的網頁。 ErrorDocument就用於設置當出現哪個錯誤時應該回應客戶浏覽器那些內容,ErrorDocument的第一個參數為錯誤的序號,第二個參數為回應的數據,可以為簡單的文本,本地網頁,本地CGI程序,以及遠程主機上的網頁。 BrowserMatch "Mozilla/2" nokeepalive BrowserMatch "MSIE 4.0b2;" nokeepalive downgrade-1.0 force-response-1.0 BrowserMatch "RealPlayer 4.0" force-response-1.0 BrowserMatch "Java/1.0" force-response-1.0 BrowserMatch "JDK/1.0" force-response-1.0 BrowserMatch命令為特定的客戶程序,設置特殊的參數,以保證對老版本浏 覽器的兼容性,並支持新浏覽器的新特性。 # # SetHandler server-status # Order deny,allow # Deny from all # Allow from .your_domain.com # # # SetHandler server-info # Order deny,allow # Deny from all # Allow from .your_domain.com # # # Deny from all # ErrorDocument 403 http://phf.apache.org/phf_abuse_log.cgi 用於設置訪問控制的設置主要是針對目錄和文件進行設置的,然而也可以針對不同的URL進行訪問控制的設置,這樣就不必擔心ScriptAlias、Alias是否將路徑設置到了受控制的目錄之外了。針對URL進行控制的語句為 Location語句,這樣不但能對服務器上的文件、CGI提供保護,此外,它還能保護不能找到對應文件,而是由服務器本身提供的特殊功能URL。http://servername/server-status用於報告當前Apache服務器的狀態,http://servername/server-info用於報告Apache 服務器的統計信息。與此相關的設置還有ExtendedStatus參數,可以讓服務器輸出更詳細的的報告。 # #ProxyRequests On # # # Order deny,allow # Deny from all # Allow from .your_domain.com # #ProxyVia On #CacheRoot "/www/proxy" #CacheSize 5 #CacheGcInterval 4 #CacheMaxExpire 24 #CacheLastModifiedFactor 0.1 #CacheDefaultExpire 1 #NoCache a_domain.com another_domain.edu joes.garage_sale.com # Apache服務器本身就具備代理的功能,然而這要求加載入mod_proxy模塊。這能使用IfModule語句進行判斷,如果存在mod_proxy模塊,就使用ProxyRequests打開代理支持。此後的Directory用於設置對Proxy功能的訪問權限設置,以及用於設置緩沖的各個參數設置。 虛擬主機 #NameVirtualHost 12.34.56.78:80 #NameVirtualHost 12.34.56.78 # # ServerAdmin [email protected]_domain.com # DocumentRoot /www/docs/host.some_domain.com # ServerName host.som