• 締切済み

htaccessでキャッシュを制御

htaccessで「Safari」ブラウザーの時のみキャッシュの制御を したいのですが、書き方がわかりません。 Header set Pragma no-cache Header set Cache-Control no-cache 上記コマンドに条件文(Safariのみ)をつけるにはどうしたらよいのでしょうか? よろしくお願いします

みんなの回答

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.4

ANo.3です。 >「Internal Server Error」になってしましました。。 そうですか・・。手元のサーバで手っ取り早く SetEnvIf User-Agent "Mozilla" safari Header set Pragma no-cache env=safari Header set Cache-Control no-cache env=safari としてテストはしたのですけどね(設置後に所定のhttpレスポンスが返るのを確認)。 #よもや最後の行末に「改行がない」ということはありませんよね?

iyosuke197
質問者

補足

改行はちゃんと入っていますね。 もうちょっと頑張ってみます。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.3

>ご案内頂いたリンクにて自分なりに作成してみましたが、 >思い通りには動いてくれませんでした。 > >SetEnvIf User-Agent "Safari" UA=safari >SetEnvIf UA safari Header set Pragma no-cache >SetEnvIf UA safari Header set Cache-Control no-cache 1行目のSetEnvIfはわかりますが、2行目・3行目はどういう意味でしょうか?提示したマニュアルにあるとおり、Headerの構文は Header [condition] set|append|add|unset|echo header [value] [early|env=[!]variable] です。なので、指示したいHeaderの最後にenv=...を付加するだけです。 SetEnvIf User-Agent "Safari" safari Header set Pragma no-cache env=safari Header set Cache-Control no-cache env=safari Apacheのマニュアルくらいは読めないと、あとあと苦労すると思います。今のうちに読めるようにしておいてください。せっかくわかりやすい和訳があるので英語版を読めとまでは言いませんが(これはphpのマニュアルも同じです)。

iyosuke197
質問者

補足

何度もありがとうございます。 ご教授いただいた SetEnvIf User-Agent "Safari" safari Header set Pragma no-cache env=safari Header set Cache-Control no-cache env=safari 設定してみたのですが、「Internal Server Error」になってしましました。。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.2

ANo.1です。 ちなみにこのカテゴリ(php)としては、『phpスクリプトでUserAgentをチェックしてheader()で所定のhttpレスポンスを返す』のもアリです。

  • shimix
  • ベストアンサー率54% (865/1590)
回答No.1

RTFM. http://httpd.apache.org/docs/2.2/ja/mod/mod_headers.html#header ----- 引用ここから env=... 引数で指定された 環境変数 が存在する (もしくは env=!... が指定されていて環境変数が存在しない) 場合は、Header ディレクティブで指定された動作が行なわれます。そうでない場合は、 ディレクティブはそのリクエストには何もしません。 ----- 引用ここまで UserAgentをチェックして環境変数をセットする(SetEnvIf)はわかりますよね? http://httpd.apache.org/docs/2.2/ja/mod/mod_setenvif.html#setenvif

iyosuke197
質問者

補足

ご回答ありがとうございます。 ご案内頂いたリンクにて自分なりに作成してみましたが、 思い通りには動いてくれませんでした。 SetEnvIf User-Agent "Safari" UA=safari SetEnvIf UA safari Header set Pragma no-cache SetEnvIf UA safari Header set Cache-Control no-cache ご教授ください

関連するQ&A

専門家に質問してみよう