条件付き設定Apache Configのヘッダーの有効期限が切れます
-
28-10-2019 - |
質問
画像のヘッダーの有効期限が条件付きで設定して、プロジェクトが開発中にキャッシュされないようにしますが、生産中の場合は意志があります。理想的には、これはApache confファイルの変更にすぎません。プロジェクトのステータスを返すPerlスクリプトがあります。これは、次のようにmod_rewriteで使用できます。
rewritemap PSTAT prg:/bin/pstat.pl
...skipping...
rewritecond ${PSTAT:$site:$1} =devel
rewriterule ^/run/$site/p(\d+)/(\w+) /logout.pl/$2 [NS,L]
次のようなことができればいいでしょう。
rewritecond ${PSTAT:$site:$1} =devel
ExpiresByType image/jpg "now plus 1 second"
もちろんそれはうまくいきません。
解決策はありますか?
解決
私のために働いたトリックは、最初にヘッダーを無条件に設定することです。
ExpiresByType image/jpg "now plus 1 second"
...
そして、私たちが開発モードになっている場合に備えて、ヘッダーを設定するために:
Header set Cache-control "no-cache" env=devel
Header unset expires env=devel
これには、ブールのenvを持っている必要があります devel
モードに基づいて以前に初期化されました。私たちの場合、ホスト名は、私たちが開発するかどうかを決定します(Devel.domain.com対www.domain.com)。
他のヒント
エイリアンハルトが言ったことから始めて、私は自分の問題に対する答えを思いつきました。
rewritemap PSTAT prg:/bin/pstat.pl
...skipping...
rewritecond ${PSTAT:$site:$1} =devel
rewriterule ^/images/(\d+)/(\w+) - [E=devel:1]
header set cache-control "no-cache" env=devel
header unset expires env=devel
(/images/(\d+)
特定のプロジェクト番号の画像のフォルダーですか (\d+)
)
E
の旗 rewriterule
ルールが一致する場合、環境変数を設定できます。 -
実際には何も書き直しません。したがって、これはスクリプトの出力を使用してチェックします rewritecond
プロジェクト番号をから送信します rewriterule
, 、そして、両方の条件が一致する場合に環境変数を設定します。それで header
その環境変数の存在に基づいて条件付きで設定されます。
所属していません StackOverflow