Apache-2.4
如何根據文件類型(mime 類型)在 .htaccess 中添加標題?
我想為所有文件類型(mime 類型)文本/html 的響應添加兩個額外的 HTTP 標頭,但不是其他文件。
目前標題(已編輯):
curl -I https://www...... HTTP/1.1 200 OK Date: Fri, 23 Feb 2018 20:43:15 GMT Server: Apache Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache Vary: Content-Type,Accept-Encoding X-Frame-Options: SAMEORIGIN Connection: keep-alive Content-Type: text/html; charset=UTF-8 Content-Language: de-DE
我嘗試的
<If>
語句不起作用(我的想法是檢查text/html
,如果已設置,則還要添加兩個額外的標題Header set
.我已經在 apache.org 上檢查了多個來源,例如此處,但似乎找不到答案。
這是我嘗試過的最合乎邏輯的事情之一。檢查目前標題;如果結果為真,則添加額外的標題。
<If "%{HTTP:Content-Type} in { 'text/html' }"> Header set Header1 test Header set Header2 test </If>
但我不知道這個 ENV 是取自請求還是響應頭。
有誰知道實現這一點的方法——根據 mime 類型在響應中添加自定義 HTTP 標頭?
謝謝。
您可能需要匹配內容類型以外的其他內容,因為它可能是稍後設置的,因此在那裡不可用。
https://httpd.apache.org/docs/2.4/expr.html上的文件解釋了您的問題:
CONTENT_TYPE The content type of the response (not available during <If >)
mod_headers
我會嘗試只用模組做事。在這裡查看範例:https ://httpd.apache.org/docs/2.4/mod/mod_headers.html所以我建議如下:
Header always set Header1 Value1 "expr=%{CONTENT_TYPE} == text/html"
如果由於未設置 CONTENT_TYPE 而這不起作用,則您需要像儲存在 REQUEST_URI 中的副檔名一樣進行匹配。