wiki:wade/lamp/apache2.conf

Version 1 (modified by wade, 15 years ago) (diff)

--

轉載:http://www.lslnet.com/linux/f/docs1/i17/big5181004.htm

# # 基於 NCSA 服務的配置文件。 # #這是Apache服務器主要配置文件。 #它包含服務器的影響服務器運行的配置指令。 #參見<URL:http://httpd.ache.org/doc-2.0/>;以取得關於這些指令的詳細信息 # #不要只是簡單的閱讀這些指令信息而不去理解它。 #這裡只是做了簡單的說明,如果你沒有參考在線文件,你就會被警告。 # #這些配置指令被分為下面三個部分: #1. 控制整個Apache服務器行為的部分(即全局環境變量) #2. 定義主要或者默認服務參數的指令,也為所有虛擬主機提供默認的設置參數 #3. 虛擬主機的設置參數 # #配置和日誌文件名:如果你指定的文件名以「/」開始(win32下以「dirver:/」), #服務器將使用絕對路徑,如果文件名不是以「/」開始的,那麼它將把ServerRoot #的值附加在文件名的前面,例如,對「logs/foo.log",如果ServerRoot的值 #為「/usr/local/apache2」,則該文件應為「/usr/local/apache2/logs/foo.log」 # ##第一區:全局環境參數 # #這裡設置的參數將影響整個Apache服務器的行為; #例如Apache能夠處理的並發請求的數量等。 # #ServerRoot:指出服務器保存其配置、出錯和日誌文件等的根目錄。 # #注意!如果你想要將它指定為NFS或其它網絡上的位置, #請一定要去閱讀與LockFile有關的文檔(可能在 #<URL:http://httpd.apache.org/docs-2.0/mod/mpm_common.html#lockfile>;)。 #這將會使你自己也能解決很多問題。 # #路徑的結尾不要添加斜線。 # ServerRoot? "/usr/loacl/apache2" # #串行訪問的鎖文件必須保存在本地磁盤上 # <IfModule? !mpm_winnt.c>; <IfModule? !mpm_neware.c>; #LockFile? logs/accept.lock </IfModule?>; </IfModule?>;

#ScoreBoardFile:用來保存內部服務進程信息的文件。 #如果未指明(默認),記分板(scoreboard)將被保存在一個匿名的共享內存段中, #並且它不能被第三方軟件所使用。 #如果指定了,要確保不能使用兩個Apache使用同一個記分板文件, #這個記分板文件必須保存在本地磁盤上。 # <IfModule? !mpm_netware.c>; <IfModule? !perchild.c>; #ScoreBoardFile? logs/apache_runtime_status <IfModule?>; <IfModule?>;

# #PidFile:記錄服務器啟動進程號的文件。 # <IfModule? !mpm_neware.c>; PidFile? logs/httpd.pid </IfModule?>;

# #Timeout:接收和發送前超時秒數 # Timeout 300

# #KeepAlive:是否允許穩固的連接(每個連接有多個請求), #設為"Off"則停用。 # KeepAlive? On

# #MaxKeepAliveRequests:在穩固連接期間允許的最大請求數, #設為0表示無限制接入。 #我們推薦你將其設為一個較大的值,以便提高性能 MaxKeepAliveRequests? 100

# #KeepAliveTimeout:在同一個連接上從同一台客戶上接收請求的秒數 # KeepAliveTimeout? 15

## ##Server-Pool大小設定(針對MPM的) ##

# prefork MPM # StartServers:啟動時服務器啟動的進程數 # MinSpareServers:保有的備用進程的最小數目 # MaxSpareServers:保有的備用進程的最大數目 # MaxClients:服務器允許啟動的最大進程數 # MaxRequestsPerChild:一個服務進程允許的最大請求數 <IfModule? prefork.c>; StartServers? 5 MinSpareServers? 5 MaxSpareServers? 10 MaxClients? 150 MaxRequestPerChild? 0 </IfModule?>;

# worker MPM # StartServers:服務器啟動時的服務進程數目 # MaxClients:允許同時連接的最大用戶數目 # MinSpareThreads:保有的最小工作線程數目 # MaxSpareThreads:允許保有的最大工作線程數目 # ThreadsPerChild:每個服務進程中的工作線程常數 # MaxRequestsPerChild:服務進程中允許的最大請求數目 <IfModule? worker.c>; StartServers? 2 MaxClients? 150 MinSpareThreads? 25 MaxSpareThreads? 75 ThreadsPerChild? 25 MaxRequestsPerChild? 0 </IfModule?>;

# perchild MPM # NumServers:服務進程數量 # StartThreads:每個服務進程中的起始線程數量 # MinSpareThreads:保有的最小線程數量 # MaxSpareThreads:保有的最大線程數量 # MaxThreadsPerChild:每個服務進程允許的最大線程數 # MaxRequestsPerChild:每個服務進程允許連接的最大數量 <IfModule? perchild.c>; NumServers? 5 StartThreads? 5 MinSpareThreads? 5 MaxSpareThreads? 10 MaxThreadsPerChild? 20 MaxRequestsPerChild? 0 </IfModule?>;

# WinNT MPM # ThreadsPerChild:服務進程中工作線程常數 # MaxRequestsPerChild:服務進程允許的最大請求數 <IfModule? mpm_winnt.c>; ThreadsPerChild? 250 MaxRequestsPerChild? 0 </IfModule?>;

# BeOS MPM # StartThreads:服務器啟動時啟動的線程數 # MaxClients:可以啟動的最大線程數(一個線程等於一個用戶) # MaxRequestsPerThread:每個線程允許的最大請求數 <IfModule? beos.c>; StartThreads? 10 MaxClients? 50 MaxRequestsPerThread? 10000 </IfModule?>;

# NetWare? MPM # ThreadStachSize:為每個工作線程分配的堆棧尺寸 # StartThreads:服務器啟動時啟動的線程數 # MinSpareThreads:用於處理實發請求的空閒線程數 # MaxSpareThreads:空閒線程的最大數量 # MaxThreads:在同一時間活動的最大線程數 # MaxRequestPerChild:一個線程服務請求的最大數量, # 推薦將其設置為0,以實現無限制的接入 <IfModule? mpm_netware.c>; ThreadStackSize? 65536 StartThreads? 250 MinSpareThreads? 25 MaxSpareThreads? 250 MaxThreads? 1000 MaxRequestPerChild? 0 </IfModule?>;

# OS/2 MPM # StartServers:啟動的服務進程數量 # MinSpareThreads:每個進程允許的最小空閒線程 # MaxSpareThreads:每個進程允許的最大空閒線程 # MaxRequestsPerChild:每個服務進程允許的最大連接數 <IfModule? mpmt_os2.c>; StartServers? 2 MinSpareThreads? 5 MaxSpareThreads? 10 MaxRequestsPerChild? 0 </IfModule?>;

# # Listen:允許你綁定Apache服務到指定的IP地址和端口上,以取代默認值 # 參見<VirtualHost?>;指令 # 使用如下命令使Apache只在指定的IP地址上監聽, # 以防止它在IP地址0.0.0.0上監聽 # # Listen 12.34.56.78:80

Listen 80

# # 動態共享支持(DSO) # # 為了能夠使用那些以DSO模式編譯的模塊中的函數,你必須有相應的「LoadModule?」行, # 因此,在這裡包含了這些指令,以便能在使用它之前激活。 # 那些靜態編譯的模塊不需要在這裡列出 (即以「httpd -l」列出的模塊) # # 示例: # LoadModule? foo_module modules/mod_foo.so #

# # ExtendedStatus?:當調用「server-status」時,控制Apache是產生「全」狀態 # 信息(ExtendedStatus? On),還是產生基本信息(ExtendedStatus? Off)。 # 默認為off # # ExtendedStatus? On

### 第二區:「主」服務配置 # # 這一區建立被 「主」 服務器用的指令值,以回應那些不被 <VirtualHost?>; # 定義處理的任何請求。 # 這些數值也提供默認值給後面定義的<VirtualHost?>;容器。 # 如果<VirtualHost?>;中有定義,那麼這裡定義的指令值將被 # <VirtualHost?>;中的定義所覆蓋。 #

<IfModule? !mpm_winnt.c>; <IfModule? !mpm_neware.c>; # # 如果你想使httpd以另外的用戶或組來運行,你必須在開始時以root方式啟動 # 然後再將它切換為你想要使用的用戶或組。 # # User/Group:運行httpd的用戶和組 # 在SCO (ODT3)上使用「User nouser」和「Group nogroup」 # 在HPUX上,你可能不能以nobody身份使用共享內存,建議創建一個www用戶。 # 注意一些核心(kernel)在組ID大於60000時拒絕setgid(Group)或semctl(IPC_SET), #節在這些系統上不要使用「Group #-1」。 # User nobody Group #-1 </IfModule?>; </IfModule?>;

# # ServerAdmin:你的郵件地址,當發生問題時Apache將向你發出郵件。 # 作為一個出錯文檔,這個地址顯示在server-generated頁上, # 例如:admin@… # ServerAdmin? kreny@…

# # ServerName指定Apache用於識別自身的名字和端口號。 # 通常這個值是自動指定的,但是我們推薦你顯式的指定它以防止啟動時出錯 # # 如果你為你的主機指定了一個無效的DNS名,server-generated重定向將不能工作。 # 參見UseCanonicalName指令 # # 如果你的主機沒有註冊DNS名,在這裡鍵入它的IP地址 # 無論如何,你必須使用它的IP地址來提供服務, # 這裡使用一種容易理解的方式重定向服務 ServerName? www.dalouis.com:80

# # UseCanonicalName:決定Apache如何構造URLS和 SERVER_NAME 和 SERVER_PORT 的指令。 # 當設置為 「Off」時,Apache會使用用戶端提供的主機名和端口號。 # 當設置為「On」,Apache會使用ServerName指令的值。 # UseCanonicalName? Off

# # DocumentRoot:你的文檔的根目錄。默認情況下,所有的請求從這個目錄進行應答。 # 但是可以使用符號鏈接和別名來指向到其他的位置。 # DocumentRoot? "/home/redhat/public_html"

# # Apache可以存取的每個目錄都可以配置存取權限(包括它的子目錄)。 # # 首先,我們配置一個高限制的特徵。

# 這將禁止訪問文件系統所在的目錄,並添加你希望允許訪問的目錄塊。 # 如下所示 <Directory />; Order Deny,Allow Deny from all </Directory>;

# # 注意從這裡開始你一定要明確地允許哪些特別的特徵能夠被使用。 # - 所以,如果Apache沒有像你所期待的那樣工作的話, # 請檢查你是否在下面明確的指定它可用。 #

# # 這將改變到你設置的DocumentRoot # <Directory "/home/redhat/public_html">;

# # Options:這個指令的值可以是「None」,「All」,或者下列選項的任意組合: # Indexes Includes FollowSymLinks? SymLinksifOwnerMatch? ExecCGI MultiViews? # # 注意,「MultiViews?」必須被顯式的指定,「Options All」不能為你提供這個特性。 # # 這個指令既複雜又重要,請參見 #「http://httpd.apache.org/docs-2.0/mod/core.html#optioins」以取得更多的信息。 # Options FollowSymLinks?

# # AllowOverride控制那些被放置在.htaccess文件中的指令。 # 它可以是「All」,「None」,或者下列指令的組合: # Options FileInfo? AuthConfig? Limit # AllowOverride? None

# # 控制誰可以獲得服務。 # Order allow,deny Allow from all

</Directory>;

# # UserDir:指定在得到一個~user請求時將會添加到用戶home目錄後的目錄名。 #

UserDir? public_html

# 為防止在UserDir指令上的漏洞,對root用戶設置 # 象「./」這樣的UserDir是非常有用的。 # 如果你使用Apache 1.3或以上版本,我們強烈建議你 # 在你的服務器配置文件中包含下面的行

UserDir? disabled root

# # 下面是一個使用UserDir指令使一個站點的目錄具有只讀屬性的示例: # # <Directory /home/*/public_html>; # AllowOverride? FileInfo? AuthConfig? Limit Indexes # Options MultiViews? Indexes SymLinksIfOwnerMatch? IncludeNoExec? # <Limit GET POST OPTIONS PROPFIND>; # Order allow,deny # Allow from all # </Limit>; # <LimitExcept? GET POST OPTIONS PROPFIND>; # Order deny,allow # Deny from all # </LimitExcept?>; # </Directory>;

# # DirectoryIndex:定義請求是一個目錄時,Apache向用戶提供服務的文件名 # # index.html.var文件(一個類型映像文件)用於提供一個文檔處理列表, # 出於同樣的目的,也可以使用MultiViews選項,但是它會非常慢。 # DirectoryIndex? index.php index.html index.html.var

# # AccessFileName:在每個目錄中查詢為目錄提供附加配置指令的文件的文件名。 # 參見AllowOverride指令。 # AccessFileName? .htaccess

# # 下面的行防止.htaccess和.htpasswd文件被Web客戶查看。 # <Files ~ "\.ht">; Order allow,deny Deny from all </Files>;

# # Typeconfig:定義在哪裡查詢mime.types文件。 # TypeConfig? conf/mime.types

# # DefaultType:定義當不能確定MIME類型時服務器提供的默認MIME類型。 # 如果你的服務主要包含text或HTML文檔,「text/plain」是一個好的選擇; # 如果大多是二進制文檔,諸如軟件或圖像,你應使用 # 「application/octer-stream」來防止瀏覽器象顯示文本那樣顯示二進制文件。 # DefaultType? text/plain

# # mod_mime_magic允許服務器從自己定義自己類型的文件中使用不同的線索(hints), # 這個MIMEMagicFile指令定義hints定義所在的文件。 # <IfModule? mod_mime_magic.c>; MIMEMagicFile conf/magic </IfModule?>;

# # HostnameLookups?:指定記錄用戶端的名字還是IP地址,例如,本指令為on時 # 記錄主機名,如www.apache.org;為off時記錄IP地址,204.62.129.132。 # 默認值為off,這要比設為on好得多,因為如果設為on則每個用戶端請求都將會 # 至少造成對 nameserver 進行一次查詢。 # HostnameLookups? Off

# # EnableMMAP:控制是否進行內存轉儲(如果操作系統支持的話)。 # 默認為on,如果你的服務器安裝在網絡文件系統上(NFS),請關閉它。 # 在一些系統上,關閉它會提升系統性能(與文件系統類型無關); # 具體情況請參閱http://httpd.apache.org/docs-2.0/mod/core.html#enablemmap # # EnableMMAP off

# # EnableSendfile:控制是否使用sendfile kernel支持發送文件 # (如果操作系統支持的話)。默認為on,如果你的服務器安裝在網絡文件系統 # (NFS)上,請你關閉它。 # 參見http://httpd.apache.org/docs-2.0/mod/core.html#enablesendfile # # EnableSendfile? off

# # ErrorLog:錯誤日誌文件定位。 # 如果你沒有在<VirtualHost?>;內定義ErrorLog指令,這個虛擬主機的錯誤信息 # 將記錄在這裡。如果你在那兒定義了ErrorLog,這些錯誤信息將記錄在你所 # 定義的文件裡,而不是這兒定義的文件。 # ErrorLog? logs/error_log

# # LogLevel:控制記錄在錯誤日誌文件中的日誌信息數量。 # 可能的值包括:debug,info,notice,warn,error,crit,alert,emerg。 # LogLevel? warn

# # 下面的指令為CustomLog指令定義格式別名。 # LogFormat? "%h %l %u %t \"%r\" %>;s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat? "%h %l %u %t \"%r\" %>;s %b" common LogFormat? "%{Referer}i ->; %U" referer LogFormat? "%{User-agent}i" agent

# 你需要安裝了mod_logio.c模塊才能使用%I和%O。 # LogFormat? "%h %l %u %t \"%r\" %>;s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio

# # 指定接入日誌文件的定位和格式(一般日誌格式)。 # 如果你沒有在<VirtualHost?>;內定義這個指令,傳輸信息將記錄在這裡, # 如果你定義了這個指令,則記錄在你指定的位置,而不是這兒定義的位置。 # CustomLog? logs/access_log common

# # 如果你想要記錄agent和referer信息,可以使用下面的指令 # # CustomLog? logs/referer_log referer # CustomLog? logs/agent_log agent

# # 如果你想要使用一個文件記錄access,agent和referer信息, # 你可以如下定義這個指令: # # CustomLog? logs/access_log combined

# # ServerTokens? # 這個指令定義包含在HTTP回應頭中的信息類型。默認為「Full」, # 這表示在回應頭中將包含模塊中的操作系統類型和編譯信息。 # 可以設為列各值中的一個: # Full | OS | Minor | Minimal | Major | Prod # Full傳達的信息最多,而Prod最少。 # ServerTokens? Full

# # 隨意的添加包含服務器版本和虛擬主機名字一行信息到server-generated輸出頁中 # (內部錯誤文檔,FTP目錄列表,mod_status和mod_info輸出等等,除了CGI錯誤 # 或自定義的錯誤文檔以外)。 # 設為「EMail」將包含一個指向ServerAdmin的mailto:連接。 # 可以為如下值:On | Off | EMail # ServerSignature? On

# # Aliases:在這時添加你需要的別名,格式如下: # Alias 別名 真實名 # # 注意,如果你在別名的未尾包含了「/」,那麼在URL中也需要包含「/」。 # 因此,「/icons」不是這個示例中的別名。 # 如果別名中以「/」結尾,那麼真實名也必須以「/」結尾, # 如果別名中省略了結尾的「/」,那麼真實名也必須省略。 # # 我們使用別名「/icons/」來表示FancyIndexed目錄列表,如果你不使用、 # FancyIndexing?,你可以註釋掉它。 # # Alias /icons/ "/usr/local/apache2/icons/"

# <Directory "/usr/local/apache2/icons">; # Options Indexes MultiViews? # AllowOverride? None # Order allow,deny ## Allow from all # </Directory>;

# # 這將改變ServerRoot/manual。這個別名提供了手冊頁所在的位置, # 即使你改變了你的DocumentRoot。如果你對有無手冊頁並不在意的話, # 你可以註釋掉它。 # Alias /manual "/usr/loacl/apache2/manual"

<Directory "/usr/local/apache2/manual">; Options Indexes FollowSymLinks? MultiViews? IncludesNoExec? AddOutputFilter? Includes html Order allow,deny Allow from all </Directory>;

# # ScriptAlias:指定包含服務腳本的目錄。 # ScriptAliases? 本質上與Aliases一樣,除了這裡的文檔在請求時做為程序處理處理以外。 # 尾部的「/」規則與Alias一樣 # ScriptAlias? /cgi-bin/ "/usr/loacl/apache2/cgi-bin/"

# 這裡是添加php 4支持的指令 AddType? application/x-httpd-php .php LoadModule? php4_module modules/libphp4.so

<IfModule? mod_cgid.c>; # # 添加mod_cgid.c設置,mod_cgid提供使用cgid進行通訊的UNIX套接字的 # 腳本接口路徑。 # # Scriptsock logs/cgisock </IfModule?>;

# # 將"/usr/local/apache2/cgi-bin"改為你的ScriptAliased指定的CGI目錄, # 如果你配置了的話。 # <Directory "/usr/local/apache2/cgi-bin">; AllowOverride? None Options None Order allow,deny Allow from all </Directory>;

# # Redirect允許你告訴客戶端使用存在於服務器名字空間中的文檔, # 而不是現在的,這幫助客戶定位那些改變了位置的文檔。 # 例如: # Redirect permanent /foo http://www.example.com/bar

# # 控制server-generated目錄列表顯示的指令 #

# # IndexOptions:控制server-generated目錄列表顯示特徵。 # IndexOptions? FancyIndexing? VersionSort?

# # AddIcon?* 指令告訴服務器不同擴展名的圖像文件如何顯示, # 只適用於FancyIndexed指令 # 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? 為那些沒有顯式定義圖標的文件提供處理 # DefaultIcon? /icons/unknown.gif

# # AddDescription允許你在server-generated索引後放置一個簡短的說明。 # 只對FancyIndexed指令有效。 # 格式:AddDescription? "說明" 文件名 # # AddDescription? "GZIP compressed document" .gz # AddDescription? "tar archive" .tar # AddDescription? "GZIP compressed tar archive" .tgz

# # ReadmeName指定服務器默認查找的README文件的名字,並添加到目錄列表中 # # HeaderName指定目錄列表前綴文件的文件名 ReadmeName? README.html HeaderName? HEADER.html

# # IndexIgnore指定目錄索引忽略並且不包含在列表中的文件名集合, # 支持shell類型的通配符。 # IndexIgnore? .??* *~ *# HEADER* README* RCS CVS *,v *,t

# # AddEncoding允許你在信息傳送中使用(Mosaic/X 2.1+)解壓縮信息, # 注意:不是所有的瀏覽器都支持這個選項。 # 儘管名字相似,但是下列的指令與上面的FancyIndexing定制指令不同。 # AddEncoding? x-compress Z AddEncoding? x-gzip gz tgz

# # DefaultLanguage和AddLanguage允許你指定文檔的語言。 # 這使你可以讓用戶用容易理解的語言瀏覽文檔。 # # 指定默認的語言,這意味著所有沒有指定語言的包都將使用該語言。 # 多數情況下,你也許並不想設置它,除非你確信這樣做是正確的。 # 通常,不使用確定的語言比使用錯誤的語言要好。 # # DefaultLanguage? nl # # 注意1:作為語言關鍵字的詞綴毫無疑問是不能一樣的--採用波蘭 # 文的文檔(網絡標準語言代碼是pl)將希望使用「AddLanguage? pl .po」 # 來避免與perl腳本的一般詞綴產生二義性。 # # 注意2: 下面的例子舉例說明在一些範例中語言的二字符縮寫與它的國家 # 的二字符縮寫不相同,例如 「Danmark/dk」 和 「Danmark/da」 的比較. # # 注意3: 在 「ltz」 的情況下我們使用三字符詞綴,違犯了 RFC的規定, # 運行中將修復它並使用RFC1766標準取得參考數據。 # # Danish (da) - Dutch (nl) - English (en) - Estonian (et) # French (fr) - German (de) - Greek-Modern (el) # Italian (it) - Norwegian (no) - Norwegian Nynorsk (nn) - Korean (ko) # Portugese (pt) - Luxembourgeois* (ltz) # Spanish (es) - Swedish (sv) - Catalan (ca) - Czech(cz) # Polish (pl) - Brazilian Portuguese (pt-br) - Japanese (ja) # Russian (ru) - Croatian (hr) # AddLanguage? da .dk AddLanguage? nl .nl AddLanguage? en .en AddLanguage? et .et AddLanguage? fr .fr AddLanguage? de .de AddLanguage? he .he AddLanguage? el .el AddLanguage? it .it AddLanguage? ja .ja AddLanguage? pl .po AddLanguage? ko .ko AddLanguage? pt .pt AddLanguage? nn .nn AddLanguage? no .no AddLanguage? pt-br .pt-br AddLanguage? ltz .ltz AddLanguage? ca .ca AddLanguage? es .es AddLanguage? sv .sv AddLanguage? cz .cz AddLanguage? ru .ru AddLanguage? tw .tw AddLanguage? zh-tw .tw AddLanguage? hr .hr

# LanguagePriority允許你在會話過程中優先使用一些語言。 # # 以優先次序遞減的方式列出它們。我們或多或少地採用按字母排列順序的方式 # 排列它們。也許你想要改變這個順序。 LanguagePriority? en da nl et fr de el it ja ko no pl pt pt-br ltz ca es sv tw

# # ForceLanguagePriority? 允許你為MULTIPLE CHOICES(Prefer)[在通訊的情況下] # 或NOT ACCEPTABLE(Fallback)[沒有可接受的語言匹配的情況]提供一個結果頁。 # ForceLanguagePriority? Prefer Fallback

# # 為發送出的所有頁指定默認的字符集,這總是一個好主意,並且為你的 # web站點的國際化打開了大門,這不正是你曾經想要的嗎。同樣地,指定 # 默認字符集有一些小的損害,如一個使用iso-8859-1(latin1)標準命令 # 的頁面,除非以別的方式指定例如你僅僅以顯式方式聲明它。 # 也有一些與那些總是鼓勵你使用默認字符集的javascropt和URL語法有關 # 的瀏覽器安全原因。 # #AddDefaultCharset? ISO-8859-1 AddDefaultCharse? GB2312

# # 一般以文件擴展名的方式使用字符集。也許你想要避免與語言擴展發生 # 碰撞,除非你在每次改變後都做了很好的測試。 # 參見http://www.iana.org/assignments/character-sets以取得字符集 # 的名字列表和它們各自的RFCs。 # AddCharset? ISO-8859-1 .iso8859-1 .latin1 AddCharset? ISO-8859-2 .iso8859-2 .latin2 .cen AddCharset? ISO-8859-3 .iso8859-3 .latin3 AddCharset? ISO-8859-4 .iso8859-4 .latin4 AddCharset? ISO-8859-5 .iso8859-5 .latin5 .cyr .iso-ru AddCharset? ISO-8859-6 .iso8859-6 .latin6 .arb AddCharset? ISO-8859-7 .iso8859-7 .latin7 .grk AddCharset? ISO-8859-8 .iso8859-8 .latin8 .heb AddCharset? ISO-8859-9 .iso8859-9 .latin9 .trk AddCharset? ISO-2022-JP .iso2022-jp .jis AddCharset? ISO-2022-KR .iso2022-kr .kis AddCharset? ISO-2022-CN .iso2022-cn .cis AddCharset? Big5 .Big5 .big5 # 對於俄語,使用了多個字符集(如何使用主要依靠客戶端): AddCharset? WINDOWS-1251 .cp-1251 .win-1251 AddCharset? CP866 .cp866 AddCharset? KOI8-r .koi8-r .koi8-ru AddCharset? KOI8-ru .koi8-uk .ua AddCharset? ISO-10646-UCS-2 .ucs2 AddCharset? ISO-10646-UCS-4 .ucs4 AddCharset? UTF-8 .utf8

# 下面的字符集沒有映射到一個特定的標準(iso)上,但是它們在瀏覽器 # 中被廣泛的支持。注意那些大寫字母。 # (它不應該,但是它是為兼容一些瀏覽器而做) # # 參見http://www.iana.org/assianments/character-sets以取得 # 它們的列表。但是瀏覽器支持較少。 # AddCharset? GB2312 .gb2312 .gb AddCharset? utf-7 .utf7 AddCharset? utf-8 .utf8 AddCharset? big5 .big5 .b5 AddCharset? EUC-TW .euc-tw AddCharset? EUC-JP .euc-jp AddCharset? EUC-KR .euc-kr AddCharset? shift_jis .sjis

# # AddType允許你為指定的文件類型添加或覆蓋mime.types文件中配置的MIME # AddType? application/x-tar .tgz AddType? image/x-icon .ico

# # AddHandler允許你映射確定的文件擴展名到「handlers」: # 與文件類型無關的行為。這既能編譯到服務器中也可以添加到Action指令 # 中(看下面)。 # 為了在ScriptAliased指令指定的以外使用CGI腳本: #(要使它可用,你還需要在Options中添加「ExecCGI」。 # # AddHandler? cgi-script .cgi

# # 對於那些包含他們自己的HTTP頭的文件 # # AddHandler? send-as-is asis

# # 對於server-parsed imagemap文件: # # AddHandler? imap-file map

# # agemap 文件: # #AddHandler? imap- 文件映像

# # 對於類型映像:(轉移資源) #(這是默認的設定以允許Apache的「It Worked」頁能多種語言分發)。 # AddHandler? type-map var

# # 過濾器允許你在將它發送到客戶端前進行處理。 # # 為了在服務器端分析包含(SSI)的.shtml文檔: # (要執行這個指令,你還需要在Options指令中添加「Includes」。) # # AddType? text/html .shtml # AddOutputFilter? INCLUDES .shtml

# # Action讓你定義當調用匹配的媒體文件時將要執行的腳本。這將減少 # 那些經常使用的CGI腳本的URL路徑名的重複輸入。 # 格式:Action media/type /cgi-script/location # 格式:Action handler-name /cgi-script/location #

# # 可配置的錯誤應答有三種風格: # 1)plain text 2)local redirects 3) external redirects # # 一些示例: # ErrorDocument? 500 "The server made a boo boo." # ErrorDocument? 404 /missing.html # ErrorDocument? 404 "/cgi-bin/missing_handler.pl" # ErrorDocument? 402 http://www.example.com/subscription_info.html #

# # 綜合應用這些指令,我們可以創建一個國際化的出錯應答。 # # 我們使用Alias來重定向任意/error/HTTP_<error>;.html.var應答到 # 我們的多語言錯誤消息集合。使用正確的文本替代它。 # # 通過加入下面的行,你就能夠改變這些消息的顯示,而不必改變 # HTTP_<error>;.html.var文件。 # # Alias /error/include/ "/your/include/path/" # # 以將/usr/local/apache2/error/include/下的文件拷貝到/your/inclue/path/下 # 開始,你可以創建你自己的文件集合,甚至是其於每個虛擬主機的。 # 不管你的ServerSignature如何設置,默認的包含文件將顯示你的 # Aapche版本號和你的ServerAdmin郵件地址 # # 國際化的錯誤文檔需要mod_alias,mod_include和mod_negotiation三個 # 模塊。要激活它們,取消下面30行的註釋符號

# Alias /error/ "/usr/local/apache2/error/" # # <Directory "/usr/local/apache2/error">; # AllowOverride? None # Options IncludesNoExec? # AddOutputFilter? Includes html # AddHandler? type-map var # Order allow,deny # Allow from all # LanguagePriority? en de es fr it nl sv # ForceLanguagePriority? Prefer Fallback # </Directory>; # # ErrorDocument? 400 /error/HTTP_BAD_REQUEST.html.var # ErrorDocument? 401 /error/HTTP_UNAUTHORIZED.html.var ErrorDocument? 403 /error.php # ErrorDocument? 404 /error/HTTP_NOT_FOUND.html.var # ErrorDocument? 405 /error/HTTP_METHOD_NOT_ALLOWED.html.var # ErrorDocument? 408 /error/HTTP_REQUEST_TIME_OUT.html.var # ErrorDocument? 410 /error/HTTP_GONE.html.var # ErrorDocument? 411 /error/HTTP_LENGTH_REQUIRED.html.var # ErrorDocument? 412 /error/HTTP_PRECONDITION_FAILED.html.var # ErrorDocument? 413 /error/HTTP_REQUEST_ENTITY_TOO_LARGE.html.var # ErrorDocument? 414 /error/HTTP_REQUEST_URI_TOO_LARGE.html.var # ErrorDocument? 415 /error/HTTP_SERVICE_UNAVAILABLE.html.var # ErrorDocument? 500 /error/HTTP_INTERNAL_SERVER_ERROR.html.var # ErrorDocument? 501 /error/HTTP_NOT_IMPLEMENTED.html.var # ErrorDocument? 502 /error/HTTP_BAD_GATEWAY.html.var # ErrorDocument? 503 /error/HTTP_SERVICE_UNAVAILABLE.html.var # ErrorDocument? 506 /error/HTTP_VARIANT_ALSO_VARIES.html.var

# # 下面的命令更改標準的HTTP應答行為以處理己知的瀏覽器問題。 # 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

# # 下面命令關閉對那些沒有尾部「/」的目錄的非GET請求的重定向, # 這些命令修復了微軟的採用DAV方法不能正確處理重定向的WEB文件夾的問題。 # Apple下的DAV文件系統和Gnome下的VFS對DAV的支持也是採用這樣的方法 # 進行處理的。 # BrowserMatch? "Microsoft Data Access Internet Publishing Provider" redirect-carefully BrowserMatch? "WebDrive?" redirect-carefully BrowserMatch? "WebDAVFS/1.[012]" redirect-carefully BrowserMatch? "gnome-vfs" redirect-carefully

# # 允許你使用URL:http://servername/server-status來通過mod_status生 # 成並報告服務器狀態信息。改變.example.com為你自己的域名。 # # <Location /server-status>; # SetHandler? server-status # Order deny,allow # Deny from all # Allow from .example.com # </Location>;

# # 允許使用URL:http://servername/server-info來遠程報告服務器配置信息 # (需要mod_info.c支持)。改變「.example.com」為你自己的域名。 # # <Location /server-info>; # SetHandler? server-info # Order deny,allow # Deny from all # Allow from .example.com # </Location>;

# # 代理服務器命令,去掉下面的行使代理服務可用。 # # <IfModule? mod_proxy.c>; # ProxyRequests? On # <Proxy *>; # Order deny,allow # Deny from all # Allow from .example.com # </Proxy>;

# # 安裝或關閉HTTP/1.1「通道」頭處理。 # (「Full」添加服務器版本信息,「Block」移掉所有輸出「通道」頭信息。 # 可以設為下面各選項之一:Off | On | Full | Block # # ProxyVia? On

# 最好為代理服務安裝高速緩衝,去掉下面幾行的註釋符號: # (沒有CacheRoot則不緩衝) # # CacheRoot? "/usr/local/apache2/proxy" # CacheSize? 5 # CacheGcInterval? 4 # CacheMaxExpire? 24 # CacheLastModifiedFactor? 01 # CacheDefaultExpire? 1 # NoCache? a-domain.com another-domain.edu joes.garage-sale.com

# </IfModule?>; # 代理命令結束。

# # 附加的特定模塊配置。 # <IfModule? mod_ssl.c>; Include conf/ssl.conf </IfModule?>;

## 第三區:虛擬主機 # # VirtualHost:你可以通過設置虛擬主機容器以實現在你的主機上保有多個 # 域名/主機名。大多數配置信息只使用基於名字的虛擬主機,因此服務器 # 不必擔心IP地址的問題,下面的命令以*號代替虛擬主機名。 # # 在你試著配置你的虛擬主機以前,請參見 # URL:http://httpd.apache.org/docs-2.0/vhosts/>;以取得更多的信息。 # # 你可以使用命令行選項「-S」來檢驗你的虛擬主機配置。

# # 使用基於名字的虛擬主機。 # # NameVirtualHost? *

# # 虛擬主機示例: # 幾乎所有的Apache命令都可以在虛擬主機容器中使用。 # 第一個虛擬主機區是用於向服務名未知的請求進行應答的配置。 # # <VirtualHost? *>; # ServerAdmin? webmaster@… # DocumentRoot? /www/docs/dummy-host.example.com # ServerName? dummy-host.example.com # ErrorLog? logs/dummy-host.example.com-error_log # CustomLog? logs/dummy-host.example.com-access_log commom # </virtualHost>;