Apache HTTP 伺服器版本 2.4
說明 | 透過查看文件內容的幾個位元組來判斷文件的 MIME 類型 |
---|---|
狀態 | 擴充功能 |
模組識別碼 | mime_magic_module |
原始檔 | mod_mime_magic.c |
此模組以 Unix 命令 file(1)
的運作方式來判斷 MIME 類型:查看文件的前幾個位元組。此模組主要用作「第二道防線」,以防範 mod_mime
無法解決的情況。
此模組源自 Unix 命令 file(1)
的免費版本,後者使用文件內容的「關鍵數字」及其他提示來判斷內容。此模組僅在由 MimeMagicFile
指令指定的魔法文件存在時才會作用。
該文件的內容為 4-5 欄位的純 ASCII 文字。空白行是允許的,但會被忽略。註解行使用井字號 (#
)。其餘行會依以下欄位進行剖析
欄位 | 說明 | ||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
1 | 開始檢查的位元組數 「 > 」表示依賴於前一個非「> 」行 | ||||||||||||||||||||||
2 | 要比對的資料類型
| ||||||||||||||||||||||
3 | 要比對的資料內容 | ||||||||||||||||||||||
4 | 若比對成功,則為 MIME 類型 | ||||||||||||||||||||||
5 | 若比對成功,則為 MIME 編碼(選用) |
例如,下列魔法文件行會辨識出一些音訊格式
# Sun/NeXT audio data 0 string .snd >12 belong 1 audio/basic >12 belong 2 audio/basic >12 belong 3 audio/basic >12 belong 4 audio/basic >12 belong 5 audio/basic >12 belong 6 audio/basic >12 belong 7 audio/basic >12 belong 23 audio/x-adpcm
或他們會辨認包含 Microsoft Word 或 FrameMaker 文件的 *.doc
檔案之間的差異。(這些是不相容的文件格式,但使用相同的檔案字尾。)
# Frame 0 string \<MakerFile application/x-frame 0 string \<MIFFile application/x-frame 0 string \<MakerDictionary application/x-frame 0 string \<MakerScreenFon application/x-frame 0 string \<MML application/x-frame 0 string \<Book application/x-frame 0 string \<Maker application/x-frame # MS-Word 0 string \376\067\0\043 application/msword 0 string \320\317\021\340\241\261 application/msword 0 string \333\245-\0\0\0 application/msword
可以包含一個選項性的 MIME 編碼作為第五欄。例如,這樣可以辨認 gzip 的檔案並為它們設定編碼。
# gzip (GNU zip, not to be confused with # [Info-ZIP/PKWARE] zip archiver) 0 string \037\213 application/octet-stream x-gzip
此模組並非適用於每個系統。如果您的系統勉強能夠應付負載,或者如果您正在執行 Web 伺服器基準測試,您可能不想啟用此功能,因為處理並非是免費的。
然而,我們已努力改善原始 file(1)
的效能,以使其適合忙碌的 Web 伺服器。它設計用於有成千上萬使用者發佈自己文件的伺服器。這在內部網路中很常見。很多時候,如果伺服器可以依據檔案名稱做出比檔案名稱允許的更明智的決定,會很有用,即使只是為了減少「我的網頁為何無法運作」的呼叫,當使用者不正確地命名他們自己的檔案時。您必須決定額外的作業是否適合您的環境。
下列備註適用於
模組,並包含於此以符合投稿人的著作權限制,需要確認他們的著作權。mod_mime_magic
mod_mime_magic:透過文件魔法數字查詢 MIME 類型
Copyright (c) 1996-1997 Cisco Systems, Inc.
此軟體於 1997 年 7 月由 Cisco Systems 提交給 Apache Group。此原始程式碼的未來修改版本和衍生版本都必須確認 Cisco Systems 是此模組原始貢獻者。Apache Group 負責所有其他授權條款和使用條款。
其中一些程式碼衍生自最初發佈於 comp.sources.unix 的檔案指令的免費版本。該程式的著作權資訊已包含在下方,符合要求。
- Copyright (c) Ian F. Darwin, 1987. Written by Ian F. Darwin.
此軟體不受美國電話電報公司或加州大學校董會的任何授權約束。
允許任何人於任何電腦系統上基於任何目的使用此軟體,並且可以在下列限制下自由變更及重新配發:
為了符合 Mr Darwin 的條款:這已大幅修改自免費的「檔案」指令碼。
realloc()
的函式。說明 | 使用指定的 magic 檔案根據檔案內容判斷 MIME 類型 |
---|---|
語法 | MimeMagicFile 檔案路徑 |
範圍 | 伺服器設定檔、虛擬主機 |
狀態 | 擴充功能 |
模組 | mod_mime_magic |
可以使用 MimeMagicFile
指令來啟用此模組,預設檔案會放在 conf/magic
中。非根目錄路徑是相對於 ServerRoot
的。虛擬主機會使用與主伺服器相同的檔案,除非使用更具體的設定,在這種情況下,更具體的設定會覆寫主伺服器的檔案。
MimeMagicFile conf/magic