Apache服務器配置全攻略(七)
2024-08-27 18:28:42
供稿:網友
作者:王波
如果使用了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