# Apache模塊 mod_mime
| [說明](#calibre_link-11) | 根據文件擴展名決定應答的行為(處理器/過濾器)和內容(MIME類型/語言/字符集/編碼) |
| --- | --- |
| [狀態](#calibre_link-12) | 基本(B) |
| [模塊名](#calibre_link-13) | mime_module |
| [源文件](#calibre_link-14) | mod_mime.c |
### 概述
本模塊通過文件的擴展名將不同的"元信息"與文件關聯起來。元信息在文檔的文件名與文檔的MIME類型、語言、字符集、編碼方式之間建立關聯。最終元信息會傳送到服務器并參與內容協商,這樣最終在考慮用戶指定參數的基礎上,在幾個可能的文件里選擇一個提供服務。關于[內容協商](#calibre_link-258)的更多信息,請參閱`mod_negotiation`模塊。
`AddCharset`, `AddEncoding`, `AddLanguage`, `AddType`指令都可以用于在文件的擴展名與文件的元信息之間建立映射關系。它們分別指明了文檔的字符集、編碼方式、語言、[MIME類型](#calibre_link-223 "see glossary")(內容類型)。指令`TypesConfig`用來指定一個文件,它也包含了擴展名到MIME類型的映射關系。
另外,`mod_mime`還可以定義[處理器](#calibre_link-253)和[過濾器](#calibre_link-15)來生成或處理信息。指令`AddHandler`, `AddOutputFilter`, `AddInputFilter`控制了提供文檔的模塊或腳本的運作方式。`MultiviewsMatch`指令設定`mod_negotiation`模塊在嘗試Multiview匹配時,如何處理文件擴展名。
當`mod_mime`模塊在元信息與文件的擴展名之間建立映射以后,`core`提供了一組指令用來建立某個給定范圍內(也就是`<Location>`, `<Directory>`, `<Files>`)所有相關文件與特定的元信息之間的關聯。這些指令包括`ForceType`, `SetHandler`, `SetInputFilter`, `SetOutputFilter` 。`core`的指令會覆蓋任何在`mod_mime`模塊中定義的文件擴展名映射。
注意,改變一個文件的元信息,不會改變`Last-Modified`頭的值。因此,以前被緩存的副本可能還會被用戶或代理服務器使用。如果你改變了元信息(語言、內容類型、字符集、編碼方式),你需要"觸及"所有相關文件(更新他們的最后修改時間),以保證所有的訪問者都收到正確的內容標題。
## 帶多擴展名的文件
文件可以有多個擴展名,這些擴展名的順序_一般情況_下是無關緊要的。例如:如果文件`welcome.html.fr`被映射為內容類型是`text/html` 、語言是法語的話,文件`welcome.fr.html`將被映射為完全相同的內容。如果一個以上的擴展名映射到同種類型的元信息上,那么將使用最右邊的那個。比如:`.gif`的[MIME類型](#calibre_link-223 "see glossary")是`image/gif` 、`.html`的[MIME類型](#calibre_link-223 "see glossary")是`text/html` ,那么`welcome.gif.html`的[MIME類型](#calibre_link-223 "see glossary")將是`text/html` 。
[語言](#calibre_link-345)和[內容編碼](#calibre_link-346)會按照積累的方式處理,因為一個文件可以被指定為多種語言或編碼。因此,`welcome.html.en.de`文件將會按照`Content-Language: en, de`和`Content-Type: text/html`發送。
在處理帶多個擴展名的文件并且這些擴展名同時關聯[MIME類型](#calibre_link-223 "see glossary")和處理器時,要特別小心。這種情況下通常是由與處理器相關的模塊來處理得到結果。比如,文件擴展名`.imap`(通過`mod_imagemap`模塊)與`imap-file`處理器相關聯,同時,`.html`文件擴展名的[MIME類型](#calibre_link-223 "see glossary")是`text/html` ,那么文件`world.imap.html`將同時與`imap-file`處理器和`text/html`MIME類型`模塊處理的圖像映射文件。
## 內容編碼
一個具有特定MIME類型的文件能夠用一種特定的方法進行額外的編碼,以簡化它在互聯網上的傳輸。這通常指的是壓縮,比如`gzip` ;也可以是加密,例如`pgp` ;還可以是像UUencoding那樣的編碼,UUencoding是用來在ASCII(文本)格式的文件里,傳輸二進制文件的編碼方式。
[HTTP/1.1 RFC](http://www.ietf.org/rfc/rfc2616.txt)第14.11節是這樣解釋的:
> 實體頭的"Content-Encoding"域是媒體類型的修飾符。如果存在,它的值指明了對實體本身進行額外編碼的方式,以及為了得到"Content-Type"頭所參照的媒體類型而必須采用的解碼機制。"Content-Encoding"主要用來允許一個文件在不破壞它底層媒體類型的基礎上,進行壓縮。
通過使用一種以上的文件擴展名(參見上面關于[帶多擴展名的文件](#calibre_link-347)一節),你可以指定文件是一種特定的_類型_,還可以同時指定它特定的_編碼方式_。
例如,你有一個文件,它是Microsoft Word文檔,同時為了減小它的大小,它還被壓縮了。如果`.doc`擴展名表示Microsoft Word文件類型,而`.zip`擴展名表示pkzip文件編碼方式,那么文件`Resume.doc.zip`就會被認出是一個用pkzip壓縮過的Word文檔。
Apache把一個`Content-encoding`頭和請求的資源一起發送,以便告訴瀏覽器資源編碼的方式。
```
Content-encoding: pkzip
```
## 字符集和語言
除了文件類型和文件編碼方式外,還有一個重要的信息是文件的語言以及文件顯示時的字符集。例如一個文檔可能是用越南語或古斯拉夫語寫的,并且也應該顯示成這種語言。這樣的信息也要在HTTP頭里進行傳輸。
字符集、語言、編碼方式、內容類型等信息都是用在內容協商(參閱`mod_negotiation`模塊)處理過程中的。它們決定了當許多包含了不同的字符集、語言、編碼方式、內容類型的文檔都存在時,具體將哪個文檔返回給客戶端。所有由`AddCharset`, `AddEncoding`, `AddLanguage`, `AddType`指令定義的文件擴展名關聯(還有在`MimeMagicFile`指令中列出的文件擴展名)都參與了這個選擇過程。使用`AddHandler`, `AddInputFilter`, `AddOutputFilter`指令建立的關聯,可以用`MultiviewsMatch`指令來決定參與或不參與匹配。
### 字符集
為了傳遞更深層次的信息,Apache在傳送一個`Content-Language`頭以指定文檔語言的基礎上,還在隨后的`Content-Type`頭中指明了具體的字符集,以便更精確地描述這一信息。
```
Content-Language: en, fr
Content-Type: text/plain; charset=ISO-8859-1
```
語言的標識是這個語言名字的二字母縮寫。`charset`是使用的字符集的精確名字。
## AddCharset 指令
| [說明](#calibre_link-18) | 在給定的文件擴展名與特定的字符集之間建立映射 |
| --- | --- |
| [語法](#calibre_link-19) | `AddCharset charset extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
`AddCharset`指令在特定的文件擴展名與特定的字符集之間建立映射。charset是以extension為擴展名的文件的[MIME字符集參數](http://www.iana.org/assignments/character-sets)。這個映射關系會強制添加在所有現存的映射關系上,并覆蓋所有現存的extension擴展名映射。
### 示例
```
AddLanguage ja .ja
AddCharset EUC-JP .euc
AddCharset ISO-2022-JP .jis
AddCharset SHIFT_JIS .sjis
```
有了以上定義以后,文檔`xxxx.ja.jis`會被當成是使用字符集`ISO-2022-JP`的日文文檔(文檔`xxxx.jis.ja`也一樣)。`AddCharset`指令除了用于通知客戶端文檔的字符集編碼方式以便正確地翻譯和顯示以外,還用于[內容協商](#calibre_link-258)(根據用戶的優先選擇信息,從幾個文檔中選擇一個返回給用戶)。
extension參數是大小寫無關的,并且可以帶或不帶前導點。
### 參見
* `mod_negotiation`
* `AddDefaultCharset`
## AddEncoding 指令
| [說明](#calibre_link-18) | 在文件擴展名與特定的編碼方式之間建立映射關系 |
| --- | --- |
| [語法](#calibre_link-19) | `AddEncoding MIME-enc extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
`AddEncoding`指令在文件擴展名與特定的編碼方式之間建立映射關系。指令定義以extension為擴展名的文件是由MIME-enc方式編碼的。這個映射關系會添加在所有有效的映射關系上,并覆蓋所有相同的extension擴展名映射。
### 示例
```
AddEncoding x-gzip .gz
AddEncoding x-compress .Z
```
有了上述定義后,包含`.gz`擴展名的文件被認為是用`x-gzip`方式編碼的,而帶`.Z`擴展名的文件則被認為是用`x-compress`方式編碼的。
老的客戶端期望`x-gzip`和`x-compress` ,然而,按標準來說,它們分別等同于`gzip`和`compress` 。Apache在進行編碼方式映射時,會忽略"`x-`"前綴。當響應需要包含編碼方式時,Apache會使用客戶端請求的格式(例如:`x-foo`或`foo`)來應答。如果客戶端沒有指明特定的格式,Apache會使用`AddEncoding`指令給定的編碼方式。為了簡化這一問題,你應該為這兩個特定的編碼方式始終使用`x-gzip`和`x-compress` 。對于象`deflate`這樣比較新的編碼方式,指定時不要帶"`x-`"前綴。
extension參數是大小無關的,并且可以帶或不帶前導點。
## AddHandler 指令
| [說明](#calibre_link-18) | 在文件擴展名與特定的處理器之間建立映射 |
| --- | --- |
| [語法](#calibre_link-19) | `AddHandler handler-name extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
指定帶extension擴展名的文件應被[handler-name](#calibre_link-253)處理器來處理。這個映射關系會添加在所有有效的映射關系上,并覆蓋所有相同的extension擴展名映射。例如,為了把擴展名為`.cgi`的文件作為CGI腳本來處理,你應該定義:
```
AddHandler cgi-script .cgi
```
一旦將上述定義放在你的http.conf文件中,所有包含`.cgi`擴展名的文件,都會被當成是CGI程序。
extension參數是大小無關的,并且可以帶或不帶前導點。
### 參見
* `SetHandler`
## AddInputFilter 指令
| [說明](#calibre_link-18) | 在文件擴展名與特定的輸入過濾器之間建立映射 |
| --- | --- |
| [語法](#calibre_link-19) | `AddInputFilter filter[;filter...] extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 僅在 Apache 2.0.26 及以后的版本中可用 |
`AddInputFilter`指令在文件擴展名extension與對服務器收到的客戶請求進行處理與轉發的輸入[過濾器](#calibre_link-15)之間建立映射。這是除包括`SetInputFilter`指令在內的所有過濾器定義指令之外的定義。這個映射會與所有有效的定義合并,并覆蓋所有相同的extension擴展名映射。
如果要指定一個以上的過濾器,它們必須用分號來分隔,并按它們處理文檔的順序來排列。filter與extension參數都是大小無關的,extension可以帶或不帶前導點。
### 參見
* `RemoveInputFilter`
* `SetInputFilter`
## AddLanguage 指令
| [說明](#calibre_link-18) | 在文件擴展名與特定的語言之間建立映射 |
| --- | --- |
| [語法](#calibre_link-19) | `AddLanguage MIME-lang extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
`AddLanguage`指令在文件擴展名與特定的語言之間建立映射。指令定義以extension為擴展名的文件是以MIME-lang語言寫成的。這個映射關系會添加在所有有效的映射關系上,并覆蓋所有相同的extension擴展名映射。
### 示例
```
AddEncoding x-compress .Z
AddLanguage en .en
AddLanguage fr .fr
```
這樣一來,文檔`xxxx.en.Z`將會被當成是一個壓縮的英文文檔(`xxxx.Z.en`也一樣)。雖然內容的語言會返回給客戶端,但瀏覽器一般未必會使用這一信息。`AddLanguage`指令更多的用于[內容協商](#calibre_link-258),以決定哪個文檔應當被返回給用戶。
如果同一個擴展名被賦予多個語言,那么使用最后出現的那個。因此在下列情況中:
```
AddLanguage en .en
AddLanguage en-gb .en
AddLanguage en-us .en
```
帶`.en`擴展名的文檔會被當成是`en-us` 。
extension參數是大小無關的,并且可以帶或不帶前導點。
### 參見
* `mod_negotiation`
## AddOutputFilter 指令
| [說明](#calibre_link-18) | 在文件擴展名與特定的輸出過濾器之間建立映射關系 |
| --- | --- |
| [語法](#calibre_link-19) | `AddOutputFilter filter[;filter...] extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 僅在 Apache 2.0.26 及以后的版本中可用 |
`AddOutputFilter`指令在文件擴展名extension與對服務將返回給客戶的信息進行處理的輸出[過濾器](#calibre_link-15)之間建立映射。這是除包括`SetOutputFilter`和`AddOutputFilterByType`指令在內的所有過濾器定義指令之外定義。這個映射會與所有有效的定義合并,并覆蓋所有相同的extension擴展名映射。
例如,下述配置會在處理所有`.shtml`文件時,進行服務器端包含,并同時使用`mod_deflate`模塊壓縮后輸出。
```
AddOutputFilter INCLUDES;DEFLATE shtml
```
如果要指定一個以上的過濾器,它們必須用分號來分隔,并按它們處理文檔的順序來排列。filter和extension參數都是大小寫無關的,extension可以帶或不帶前導點。
### 參見
* `RemoveOutputFilter`
* `SetOutputFilter`
## AddType 指令
| [說明](#calibre_link-18) | 在給定的文件擴展名與特定的內容類型之間建立映射 |
| --- | --- |
| [語法](#calibre_link-19) | `AddType MIME-type extension [extension] ...` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
`AddType`指令在給定的文件擴展名與特定的內容類型之間建立映射關系。MIME-type指明了包含extension擴展名的文件的[媒體類型](#calibre_link-223 "see glossary")。這個映射關系會添加在所有有效的映射關系上,并覆蓋所有相同的extension擴展名映射。本指令可用來增加沒有在媒體類型文件(參閱`TypesConfig`指令)中定義的映射關系。
### 示例
```
AddType image/gif .gif
```
推薦使用`AddType`指令增加新的媒體類型映射關系,而不是改變`TypesConfig`文件。
extension參數是大小無關的,并且可以帶或不帶前導點。
### 參見
* `DefaultType`
* `ForceType`
## DefaultLanguage 指令
| [說明](#calibre_link-18) | 為所有文件設定特定的默認語言 |
| --- | --- |
| [語法](#calibre_link-19) | `DefaultLanguage MIME-lang` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
`DefaultLanguage`指令告訴Apache,當該指令作用域范圍內(例如,所有當前`<Directory>`指令封裝范圍內)的文件沒有明確的語言擴展名(例如由`AddLanguage`指令定義的`.fr`或`.de`)時,文件應該被認為是由MIME-lang語言構成的。舉例來說,這就允許在不必對每個文件進行重命名的情況下,把整個目錄中的文件標記為包含荷蘭語內容。注意不同于用擴展名來指定語言,`DefaultLanguage`指令只能指定一種語言。
如果沒有提供有效的`DefaultLanguage`指令同時文件也不包含由`AddLanguage`定義的語言擴展名,那么該文件將被認為沒有語言屬性。
### 示例
```
DefaultLanguage en
```
### 參見
* `mod_negotiation`
## ModMimeUsePathInfo 指令
| [說明](#calibre_link-18) | 將`path_info`當成是文件名的一個組成部分 |
| --- | --- |
| [語法](#calibre_link-19) | `ModMimeUsePathInfo On|Off` |
| [默認值](#calibre_link-24) | `ModMimeUsePathInfo Off` |
| [作用域](#calibre_link-20) | directory |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 僅在 Apache 2.0.41 及以后的版本中可用 |
`ModMimeUsePathInfo`指令用來設定在使用由`mod_mime`提供的指令時,是否將URL的`path_info`與文件名結合起來進行處理。默認值為 `Off` ,也就是說URL的`path_info`部分被忽略。
當你使用虛擬文件系統的時候,推薦使用本指令。
### 示例
```
ModMimeUsePathInfo On
```
對`/bar/foo.shtml`這樣的請求來說,"`/bar`"是一個位置信息,如果`ModMimeUsePathInfo`指令為 `On` ,`mod_mime`會將請求解析成`/bar/foo.shtml` ,于是象"`AddOutputFilter INCLUDES .shtml`"這樣的指令就會使用`INCLUDES`過濾器來處理這個請求。如果沒有設定`ModMimeUsePathInfo`指令,則不會使用`INCLUDES`過濾器。
### 參見
* `AcceptPathInfo`
## MultiviewsMatch 指令
| [說明](#calibre_link-18) | 在使用MultiViews查詢所匹配的文件時要包含的文件類型 |
| --- | --- |
| [語法](#calibre_link-19) | `MultiviewsMatch Any|NegotiatedOnly|Filters|Handlers [Handlers|Filters]` |
| [默認值](#calibre_link-24) | `MultiviewsMatch NegotiatedOnly` |
| [作用域](#calibre_link-20) | server config, virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 僅在 Apache 2.0.26 及以后的版本中可用 |
`MultiviewsMatch`指令在實現`mod_negotiation`模塊的Multiviews功能時,提供了三種不同的處理方法。Multiviews允許對一個文件的請求,可以用任何在基礎請求后面跟上協商擴展名的情況來匹配,例如:`index.html`可以用`index.html.en`, `index.html.fr`, `index.html.gz`來匹配。
`NegotiatedOnly`選項規定每個跟在基礎名字后面的擴展名必須關聯到一個在內容協商時已知的`mod_mime`擴展名,例如:字符集、內容類型、語言、編碼方式。這是一種最嚴格也是副作用最少的實現方法,它是默認的處理方式。
為了包含與處理器和/或過濾器關聯的擴展名,可以設定`MultiviewsMatch`指令為`Handlers`或`Filters` ,也可以兩個都選。如果其它所有因素都相等,則會選擇最小的那個文件來提供服務。例如,在一個500字節的`index.html.cgi`文件和一個1000字節的`index.html.pl`文件中做選擇時,`.cgi`文件會勝出。如果`.asis`文件與`asis-handler`處理器關聯,對`.asis`文件的請求就會使用處理器選項指明的處理器。
即使`mod_mime`不認識的擴展名,你最終也可以通過使用`Any`選項來使它匹配用戶的請求。Apaceh1.3就是按這個方式處理的,這會導致無法預測的結果,比如匹配了網站管理員從來不希望使用的.old或.bak文件。
例如,下面的配置允許在Multviews查詢中使用處理器和過濾器,但會拒絕未知的文件:
```
MultiviewsMatch Handlers Filters
```
### 參見
* `Options`
* `mod_negotiation`
## RemoveCharset 指令
| [說明](#calibre_link-18) | 刪除任何給定的擴展名與內容字符集之間的關聯 |
| --- | --- |
| [語法](#calibre_link-19) | `RemoveCharset extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 僅在 Apache 2.0.24 及以后的版本中可用 |
`RemoveCharset`指令刪除任何給定的擴展名與內容字符集之間的關聯。子目錄中的`.htaccess`文件可以通過這條指令取消從父目錄或服務器配置文件中繼承過來的擴展名與內容字符集之間的關聯關系。
extension參數是大小無關的,并且可以帶或不帶前導點。
### 示例
```
RemoveCharset .html .shtml
```
## RemoveEncoding 指令
| [說明](#calibre_link-18) | 刪除任何給定的擴展名與內容編碼方式之間的關聯 |
| --- | --- |
| [語法](#calibre_link-19) | `RemoveEncoding extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
`RemoveEncoding`指令刪除任何給定的擴展名與內容編碼方式之間的關聯。子目錄中的`.htaccess`文件可以通過這條指令取消從父目錄或服務器配置文件中繼承過來的擴展名與內容編碼方式之間的關聯關系。舉例來說,它可以這樣來使用:
### /foo/.htaccess:
```
AddEncoding x-gzip .gz
AddType text/plain .asc
<Files *.gz.asc>
RemoveEncoding .gz
</Files>
```
這樣,`foo.gz`被認為是用gzip方式編碼的,但`foo.gz.asc`將被認為是一個未編碼的純文本文件。
### 注意
`RemoveEncoding`指令在所有`AddEncoding`指令_之后_處理,因此如果在同一個目錄配置里兩者都出現的話,`RemoveEncoding`指令將會取消后面的`AddEncoding`指令的作用。
extension參數是大小無關的,并且可以帶或不帶前導點。
## RemoveHandler 指令
| [說明](#calibre_link-18) | 刪除任何指定擴展名與處理器之間的關聯 |
| --- | --- |
| [語法](#calibre_link-19) | `RemoveHandler extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
`RemoveHandler`指令刪除任何指定的擴展名與處理器之間的關聯。子目錄中的`.htaccess`文件可以通過這條指令取消從父目錄或服務器配置文件中繼承過來的擴展名與處理器之間的關聯關系。舉例來說,它可以這樣來使用:
### /foo/.htaccess
`AddHandler server-parsed .html`
### /foo/bar/.htaccess
`RemoveHandler .html`
`這樣`/foo/bar`目錄中的`.html`文件將被當成普通文件來處理,而不是由parsing處理器(參閱`mod_include`模塊)來處理。`
extension參數是大小無關的,并且可以帶或不帶前導點。
## RemoveInputFilter 指令
| [說明](#calibre_link-18) | 刪除指定擴展名與輸入過濾器之間的關聯 |
| --- | --- |
| [語法](#calibre_link-19) | `RemoveInputFilter extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 僅在 Apache 2.0.26 及以后的版本中可用 |
`RemoveInputFilter`指令刪除指定的擴展名與輸入過濾器之間的關聯。子目錄中的`.htaccess`文件可以通過這條指令取消從父目錄或服務器配置文件中繼承過來的擴展名與輸入過濾器之間的關聯關系。
extension參數是大小無關的,并且可以帶或不帶前導點。
### 參見
* `AddInputFilter`
* `SetInputFilter`
## RemoveLanguage 指令
| [說明](#calibre_link-18) | 刪除指定的擴展名與內容語言之間的關聯 |
| --- | --- |
| [語法](#calibre_link-19) | `RemoveLanguage extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 僅在 Apache 2.0.24 及以后的版本中可用 |
`RemoveLanguage`指令刪除指定的擴展名與內容語言之間的關聯。子目錄中的`.htaccess`文件可以通過這條指令取消從父目錄或服務器配置文件中繼承過來的擴展名與內容語言之間的關聯關系。
extension參數是大小無關的,并且可以帶或不帶前導點。
## RemoveOutputFilter 指令
| [說明](#calibre_link-18) | 刪除指定擴展名與輸出過濾器之間的關聯 |
| --- | --- |
| [語法](#calibre_link-19) | `RemoveOutputFilter extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
| [兼容性](#calibre_link-137) | 僅在 2.0.26 及以后的版本中可用 |
`RemoveOutputFilter`指令刪除指定的擴展名與輸出過濾器之間的關聯。子目錄中的`.htaccess`文件可以通過這條指令取消從父目錄或服務器配置文件中繼承過來的擴展名與輸出過濾器之間的關聯關系。
extension參數是大小無關的,并且可以帶或不帶前導點。
### 示例
```
RemoveOutputFilter shtml
```
### 參見
* `AddOutputFilter`
## RemoveType 指令
| [說明](#calibre_link-18) | 刪除指定擴展名與內容類型之間的關聯 |
| --- | --- |
| [語法](#calibre_link-19) | `RemoveType extension [extension] ...` |
| [作用域](#calibre_link-20) | virtual host, directory, .htaccess |
| [覆蓋項](#calibre_link-66) | FileInfo |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
`RemoveType`指令刪除指定的擴展名與[內容類型](#calibre_link-223 "see glossary")之間的關聯。子目錄中的`.htaccess`文件可以通過這條指令取消從父目錄或服務器配置文件中繼承過來的擴展名與內容類型之間的關聯關系。舉例來說,它可以這樣使用:
### /foo/.htaccess
`RemoveType .cgi`
`這將刪除`/foo/`目錄及其所有子目錄下`.cgi`文件的特定處理方式,從而使這些文件按`DefaultType`指令設定的默認類型來處理。`
`
### 注意
`RemoveType`指令會在所有的`AddType`指令_之后_處理,因此,當同一個目錄配置中,同時存在這兩種指令的時候,前面的`RemoveType`指令將會取消后面的`AddType`指令的作用。
extension參數是大小無關的,并且可以帶或不帶前導點。
``
## TypesConfig 指令
| [說明](#calibre_link-18) | 指定`mime.types`文件的位置 |
| --- | --- |
| [語法](#calibre_link-19) | `TypesConfig file-path` |
| [默認值](#calibre_link-24) | `TypesConfig conf/mime.types` |
| [作用域](#calibre_link-20) | server config |
| [狀態](#calibre_link-21) | 基本(B) |
| [模塊](#calibre_link-22) | mod_mime |
`TypesConfig`指令設定[MIME類型](#calibre_link-223 "see glossary")配置文件的位置。File-path是相對于`ServerRoot`的路徑。媒體類型配置文件列出了文件擴展名與內容類型的默認映射關系。大多數管理員使用既定的`mime.types`文件,它關聯了文件擴展名和由IANA注冊的內容類型。最新的列表可以在[http://www.iana.org/assignments/media-types/index.html](http://www.iana.org/assignments/media-types/index.html)得到。這樣做可以大大簡化`httpd.conf`文件里的媒體類型定義,在需要時,也可以用`AddType`指令來更改這些定義。你不應該編輯`mime.types`文件,因為在服務器升級的時候,它會被覆蓋。
文件包含類似于`AddType`指令參數格式的行:
```
<var class="calibre40">MIME-type</var> [<var class="calibre40">extension</var>] ...
```
擴展名的大小寫是無關緊要的。空行和以井號(`#`)打頭的行會被忽略。
請**不要**要求Apache HTTP服務器項目組在已發布的`mime.types`文件中增加新的項,除非(1)它們已經在IANS注冊過了,或者(2)它們被廣泛地使用,并且在多平臺上沒有文件擴展名沖突發生。`category/x-subtype`請求會被自動拒絕,因為任何新的二字母的擴展名很可能會與已經非常擁擠的語言及字符集名字空間沖突。
### 參見
* `mod_mime_magic`
``
- Apache HTTP Server Version 2.2 文檔 [最后更新:2006年3月21日]
- 版本說明
- 從1.3升級到2.0
- 從2.0升級到2.2
- Apache 2.2 新特性概述
- Apache 2.0 新特性概述
- The Apache License, Version 2.0
- 參考手冊
- 編譯與安裝
- 啟動Apache
- 停止和重啟
- 配置文件
- 配置段(容器)
- 緩沖指南
- 服務器全局配置
- 日志文件
- 從URL到文件系統的映射
- 安全方面的提示
- 動態共享對象(DSO)支持
- 內容協商
- 自定義錯誤響應
- 地址和端口的綁定(Binding)
- 多路處理模塊
- Apache的環境變量
- Apache處理器的使用
- 過濾器(Filter)
- suEXEC支持
- 性能方面的提示
- URL重寫指南
- Apache虛擬主機文檔
- 基于主機名的虛擬主機
- 基于IP地址的虛擬主機
- 大批量虛擬主機的動態配置
- 虛擬主機示例
- 深入研究虛擬主機的匹配
- 文件描述符限制
- 關于DNS和Apache
- 常見問題
- 經常問到的問題
- Apache的SSL/TLS加密
- SSL/TLS高強度加密:緒論
- SSL/TLS高強度加密:兼容性
- SSL/TLS高強度加密:如何...?
- SSL/TLS Strong Encryption: FAQ
- 如何.../指南
- 認證、授權、訪問控制
- CGI動態頁面
- 服務器端包含入門
- .htaccess文件
- 用戶網站目錄
- 針對特定平臺的說明
- 在Microsoft Windows中使用Apache
- 在Microsoft Windows上編譯Apache
- Using Apache With Novell NetWare
- Running a High-Performance Web Server on HPUX
- The Apache EBCDIC Port
- 服務器和支持程序
- httpd - Apache超文本傳輸協議服務器
- ab - Apache HTTP服務器性能測試工具
- apachectl - Apache HTTP服務器控制接口
- apxs - Apache 擴展工具
- configure - 配置源代碼樹
- dbmmanage - 管理DBM格式的用戶認證文件
- htcacheclean - 清理磁盤緩沖區
- htdbm - 操作DBM密碼數據庫
- htdigest - 管理用于摘要認證的用戶文件
- httxt2dbm - 生成RewriteMap指令使用的dbm文件
- htpasswd - 管理用于基本認證的用戶文件
- logresolve - 解析Apache日志中的IP地址為主機名
- rotatelogs - 滾動Apache日志的管道日志程序
- suexec - 在執行外部程序之前切換用戶
- 其他程序
- 雜項文檔
- 與Apache相關的標準
- Apache模塊
- 描述模塊的術語
- 描述指令的術語
- Apache核心(Core)特性
- Apache MPM 公共指令
- Apache MPM beos
- Apache MPM event
- Apache MPM netware
- Apache MPM os2
- Apache MPM prefork
- Apache MPM winnt
- Apache MPM worker
- Apache模塊 mod_actions
- Apache模塊 mod_alias
- Apache模塊 mod_asis
- Apache模塊 mod_auth_basic
- Apache模塊 mod_auth_digest
- Apache模塊 mod_authn_alias
- Apache模塊 mod_authn_anon
- Apache模塊 mod_authn_dbd
- Apache模塊 mod_authn_dbm
- Apache模塊 mod_authn_default
- Apache模塊 mod_authn_file
- Apache模塊 mod_authnz_ldap
- Apache模塊 mod_authz_dbm
- Apache模塊 mod_authz_default
- Apache模塊 mod_authz_groupfile
- Apache模塊 mod_authz_host
- Apache模塊 mod_authz_owner
- Apache模塊 mod_authz_user
- Apache模塊 mod_autoindex
- Apache模塊 mod_cache
- Apache模塊 mod_cern_meta
- Apache模塊 mod_cgi
- Apache模塊 mod_cgid
- Apache模塊 mod_charset_lite
- Apache模塊 mod_dav
- Apache模塊 mod_dav_fs
- Apache模塊 mod_dav_lock
- Apache模塊 mod_dbd
- Apache模塊 mod_deflate
- Apache模塊 mod_dir
- Apache模塊 mod_disk_cache
- Apache模塊 mod_dumpio
- Apache模塊 mod_echo
- Apache模塊 mod_env
- Apache模塊 mod_example
- Apache模塊 mod_expires
- Apache模塊 mod_ext_filter
- Apache模塊 mod_file_cache
- Apache模塊 mod_filter
- Apache模塊 mod_headers
- Apache模塊 mod_ident
- Apache模塊 mod_imagemap
- Apache模塊 mod_include
- Apache模塊 mod_info
- Apache模塊 mod_isapi
- Apache模塊 mod_ldap
- Apache模塊 mod_log_config
- Apache模塊 mod_log_forensic
- Apache模塊 mod_logio
- Apache模塊 mod_mem_cache
- Apache模塊 mod_mime
- Apache模塊 mod_mime_magic
- Apache模塊 mod_negotiation
- Apache模塊 mod_nw_ssl
- Apache模塊 mod_proxy
- Apache模塊 mod_proxy_ajp
- Apache模塊 mod_proxy_balancer
- Apache模塊 mod_proxy_connect
- Apache模塊 mod_proxy_ftp
- Apache模塊 mod_proxy_http
- Apache模塊 mod_rewrite
- Apache模塊 mod_setenvif
- Apache模塊 mod_so
- Apache模塊 mod_speling
- Apache模塊 mod_ssl
- Apache模塊 mod_status
- Apache模塊 mod_suexec
- Apache模塊 mod_unique_id
- Apache模塊 mod_userdir
- Apache模塊 mod_usertrack
- Apache模塊 mod_version
- Apache模塊 mod_vhost_alias
- Developer Documentation for Apache 2.0
- Apache 1.3 API notes
- Debugging Memory Allocation in APR
- Documenting Apache 2.0
- Apache 2.0 Hook Functions
- Converting Modules from Apache 1.3 to Apache 2.0
- Request Processing in Apache 2.0
- How filters work in Apache 2.0
- Apache 2.0 Thread Safety Issues
- 詞匯和索引
- 詞匯表
- 指令索引
- 指令速查
- 模塊索引
- 站點導航