Apacheのhttpdのでは、どのように私は与えられたのUserAgentのためのキャッシュを構成しないのですか?

StackOverflow https://stackoverflow.com/questions/596520

質問

私は、Apache HTTPDは、ほとんどの静的コンテンツの要求にキャッシュヘッダを追加するように設定されています

ExpiresActive On
ExpiresDefault "access plus 1 year"

# Force JNLP and BSH files to expire immediately so updates are checked for
# and seen (We need this so we see changes in the dynamic content in both)
ExpiresByType application/x-java-jnlp-file "now"
ExpiresByType application/x-bsh "now"

どのように私はUserAgentは、文字列のJNLPを含むすべてのリクエストに対して、このキャッシュを無効にすることができますか?要求は、ユーザエージェントJNLP(例えば「User-Agent: JNLP/6.0 javaws/1.6.0_12 (b04) Java/1.6.0_12」)から来ているとき、私はHTTPレスポンスののいずれかのCache-Controlまたは他のキャッシュ関連のヘッダーを望んでいない。

私は、ユーザーエージェントに基づいていくつかの設定例を見つけることができますが、私は、ユーザーエージェントに応じてキャッシュを設定する方法を見つけ出すことはできません。

役に立ちましたか?

解決

あなたのExpiresByTypeディレクティブは良いアイデアのように見える...それが十分でない場合は、BrowserMatchを使用してみます:

BrowserMatch JNLP ua_is_jnlp

これはユーザエージェントヘッダは(大文字小文字を区別しない変異体、ua_is_jnlpもある)文字列JNLPを含むすべての要求のためのいくつかの値に環境変数BrowserMatchNoCaseを設定します。そして、あなたが任意のキャッシングヘッダをクリアすることができます。

Header unset Cache-Control env=ua_in_jnlp
Header unset Expires env=ua_in_jnlp

あなたが完全にキャッシュを無効にしたい場合は、あなたが設定したほうが良いと思いますが、

Header set Cache-Control no-cache env=ua_in_jnlp
Header set Expires 0 env=ua_in_jnlp
ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top