Apache-2.2
如何在 apache 中為文件發送 Content-Disposition 標頭?
我有一個使用 apache 2 提供的文本文件目錄。通常,當我(或任何使用者)訪問他們在瀏覽器中看到的文件時。我想“強制”*網路瀏覽器彈出一個“另存為”對話框。我知道這可能與
Content-Disposition
標題有關(更多資訊)。有沒有辦法為每個文件打開它?
理想情況下,我想要這樣的東西:
<Directory textfiles> AutoAddContentDispositionHeaders On </Directory>
然後 apache 將設置正確的內容處置標頭,包括使用相同的文件名。
Header
使用 apache指令可能會發生這樣的事情。如果它包含在 debian 中的 apache 中,則可以加分。
我可以做一個簡單的 PHP 包裝腳本,它接受一個
filename
參數,呼叫header(...)
然後列印文件,但是我必須驗證輸入等。這是我試圖避免的工作。
- 我知道在網路方面你實際上不能強迫事情
我發現這可以滿足我的要求:
<Location /textfiles> SetEnvIf Request_URI "^.*/([^/]*)$" FILENAME=$1 Header set "Content-disposition" "attachment; filename=%{FILENAME}e" UnsetEnv FILENAME </Location>
mod_headers
應該是你正在尋找的:<IfModule mod_headers.c> <Location ~ ".*/textfiles/.*"> Header set Content-Disposition attachment </Location> </IfModule>