apache2でブラウザのキャッシュ制御をする方法

このQ&Aのポイント
  • apache2でxls,docファイルのキャッシュ制御をしたい
  • apache2で特定のファイルのキャッシュ制御をするためには、Headerコマンドを使用する必要があります
  • ただし、Headerコマンドが使用できない場合は、代替の方法を検討する必要があります
回答を見る
  • ベストアンサー

apache2でブラウザのキャッシュ制御をしたい

apache2でxls,docファイルののキャッシュ制御をしたく、以下のページを参考に http://tech.bayashi.net/pdmemo/browsercache.html /etc/apache2/apache2.conf に <Files ~ "\.(doc|xls)$"> Header set Pragma no-cache Header set Cache-Control no-cache Header set Expires "Thu, 01 Dec 1994 16:00:00 GMT" </Files> と書き込んだところ Invalid command 'Header', perhaps mis-spelled or defined by a module not included in the server configuration と言ったエラーが出てしまいました。 apache2でheaderに相当するコマンドを教えていただけると助かります。 よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • aton
  • ベストアンサー率47% (160/334)
回答No.1

Apache 2系にもHeaderはあります。 しかしHeaderは拡張機能なので,モジュールmod_headersの追加が必要です。 http://httpd.apache.org/docs/2.0/mod/mod_headers.html#header

参考URL:
http://httpd.apache.org/docs/2.0/mod/mod_headers.html#header
eguegu
質問者

お礼

返事が遅くなってしまい申し訳ありません。 どうもありがとうございました。

関連するQ&A

  • htaccessでキャッシュを制御

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

    • 締切済み
    • PHP
  • サーバーのキャッシュを有効にしたい。

    サーバーのキャッシュを有効にしたい。 KAGOYAのサーバーで、 KENT WEBのClipMailを利用しフォームを設置しております。 ページ遷移時にフォームの入力内容が保持されず、 原因を探っていたら、Cache-Controlでno-cacheになっていることが原因だと分かりました。 .htaccessでキャッシュを有効にするにはどうすればいいのでしょうか? ちなみに、他社サーバーでは入力内容は保持されています。 ▼取得したHTTPヘッダー ------------------------------ HTTP/1.1 200 OK Date: Thu, 29 Jul 2010 15:02:38 GMT Server: Apache/1.3.41 (Unix) PHP/5.2.13 mod_ssl/2.8.31 OpenSSL/0.9.7l X-Powered-By: PHP/5.2.13 Expires: Thu, 19 Nov 1981 08:52:00 GMT Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0 Pragma: no-cache Proxy-Connection: close Connection: close

  • キャッシュ(?)の消去について。

    <?php //$aはurlの配列です。 foreach($a as $v){ $imgNum = str_pad($count, 5, '0', STR_PAD_LEFT); $imgURL = "img/$imgNum.jpg"; if ( false == @file($imgURL) ){ printf("<a href=\"%s\"><img src=\"img/none.jpg\" /></a>\n", chop($v, "\n")); } else { printf("<a href=\"%s\"><img src=\"$imgURL\" /></a></li>\n", chop($v, "\n")); } //以下のようなものを含めたり。 $imgURL = NULL; @unlink($imgURL); clearstatcache(); } /* php header("pragma: no-cache"); header("cache-control: no-cache"); header("expires: 0"); html <meta http-equiv="pragma" content="no-cache"> <meta http-equiv="cache-control" content="no-cache"> <meta http-equiv="expires" content="0"> .htaccess <Files ~ "\.(html|php|jpe?g|gif|png)$"> Header set Pragma no-cache Header set Cache-Control no-cache </Files> 上記3つも含めていますが、イメージの出力にあたるif文で分岐してくれません。 あきらかにfile関数に対応するjpgはないのですが。 ブラウザにキャッシュは記憶しないよう設定しています。 色々考えましたが、停止してしまいました。 ご回答お待ちしております。 */

    • 締切済み
    • PHP
  • ブラウザの戻るができないようにしたい

    ページ内はHTMLファイルですが、そのページのiframe内にperlで動的ページを表示させています。 クリック自体はifream内の動的ページですが、ページのキャッシュが残っているらしく、ブラウザの戻るが有効になります。 戻るができないようにしたいのですが何か良い方法はありますか? 以下、効果はありませんでした。 ファイル1 test.html <html> <head> <title>HTML</title> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Fri, 31 Dec 2004 23:59:59 GMT"> </head> <body> <ifream src="test.cgi"></ifream> </body> </html> ファイル2 test.cgi print "Content-type: text/html\n"; print "Pragma: no-cache\n"; print "Cache-Control: no-cache\n"; print "Expires: Thu, 01 Dec 1994 16:00:00 GMT\n\n"; print <<EOT; <html> <head> <title>CGI</title> <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Fri, 31 Dec 2004 23:59:59 GMT"> </head> <body> <a href="test.cgi">sample</a> </body> </html> EOT exit;

    • ベストアンサー
    • Perl
  • キャッシュを完全に消すHTML入れたのですが、・・

    私はフラッシュを作成している者です。 フラッシュをまめに修正してネットにアップしているのですが、なぜか最初にアップしたままという現象が続きました。 いろいろ調べたところキャッシュされていてそれが読み込まれている状態と気づきました。 これを解消すべく、キャッシュを完全に残さずに表示させる勉強を始めました。 下記のようなソースコードを入れることによってキャッシュされにくいという情報を入手したので入れたのですが、反応がありませんでした。 どうかキャッシュを読み込まないようにする方法を教えていただけないでしょうか? お願いします。(土下座) <META http-equiv="Pragma" content="no-cache"> <META http-equiv="Cache-Control" content="no-cache"> <META http-equiv="Expires" content="Thu, 01 Dec 1994 16:00:00 GMT">

  • キャッシュの制御がうまくいきません

    毎回お世話になっております。 現在、Perlを用いてWebページを作成しておりますが、キャッシュの制御に困っております。 キャッシュを制御したいhtmlページのHEAD部分には ******************************************************* <META HTTP-EQUIV="Pragma" CONTENT="no-cache"> <META HTTP-EQUIV="Cache-Control" content="no-cache"> <META HTTP-EQUIV="Expires" content="Mon, 1 Jan 1990 01:01:01 GMT"> ******************************************************* 上記のMETAタグを入れているのですが、次の画面へ行き「戻る」ボタンを押すと戻ってしまうのです・・・ Perl内に、 print "Cotent-Type: text/html; Pragma: nocahe\n\n"; を記述してもだめでした。 「教えて!goo」の中で次の画面に進むときに「replace()」で飛ばすと戻らない回答があったのですが、次の画面に行くときにPOSTでデータを受け渡さないといけないので、「このMethodはGETです」とエラーが表示されてしまいます。 様々なHPで検索して試してみたのですが、どれもだめでした・・・ なにかよい回答がありましたらよろしくおねがいいたします。

    • ベストアンサー
    • CGI
  • ブラウザのページキャッシュ機能を抑制したい。

    いつもお世話になっております。 PHP5.2.5 Firefox3.5.2 ブラウザのページキャッシュをPHPスクリプトにて抑制したいのですが、 PHPマニュアルに書かれていた方法ではダメでした。 その方法は以下の通り。 ---------------- <?php // 日付が過去 header("Expires: Mon, 26 Jul 1997 05:00:00 GMT"); // 常に修正されている header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); // HTTP/1.1 header("Cache-Control: no-store, no-cache, must-revalidate"); header("Cache-Control: post-check=0, pre-check=0", false); // HTTP/1.0 header("Pragma: no-cache"); ?> -------------------------- これではダメでしたので、 毎回、Firefoxの 「ツール」→「オプション」→「ネットワーク(タブ)」 →「今すぐ消去(ボタン)」 という方法で、キャッシュされてしまっているデータを消去して、 最新の状態(変更が反映されたかどうか)を確認しています。 毎回、キャッシュをブラウザ側で消すのは面倒なので、 できれば、PHPスクリプト側で、キャッシュを無効とするような設定に したいと思っています。 PHPマニュアルの方法では無理だったのは、 私の使用しているブラウザに原因があると考えられますでしょうか? ページキャッシュ抑制を、 できればファイル単位で行いたいと考えています。 どなたかアドバイスをお願いいたします。

    • ベストアンサー
    • PHP
  • キャッシュの制御

    HTMLページにアクセスした際に、ローカルにキャッシュを作成しないよう制御したいのです。 Webで色々と調べて、 <HEAD>~</HEAD>の間に <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Thu, 01 Dec 1994 16:00:00 GMT"> を追加しましたが、ページ表示時にIEのTempフォルダ 「C:\Documents and Settings\Administrator\Local Settings\Temporary Internet Files」 にファイルが作成されます。 実際に実現したいことというのが、 1.通常OWS(OracleWebServer)でシステム動作 ↓ 2.データメンテナンス時にOWS停止 ↓ 3.IISを起動し、データメンテナンス中である旨、ページを表示 ↓ 4.データメンテナンス完了後、IIS停止、OWS起動 ↓ 5.通常のシステム画面を表示 を実現したいのですが、3の時点でキャッシュ無効のHTMLページを表示してもキャッシュが作成され、4→5の時にメンテナンス中の画面が表示されたままになり、リロードしても回避されない(キャッシュを消さないと通常のシステム画面が表示されない)状態なのです。 環境は OS:WindowsNT Server 4.0 OWS:Oracle WebServer2.1 IIS:InternetInformationServer4.0 です。 マニアックな質問で申し訳ないのですが、ご回答頂けますよう宜しくお願い致します。

  • 動画配信サイトで動画を閲覧するとキャッシュが残りますよね?(サイトによ

    動画配信サイトで動画を閲覧するとキャッシュが残りますよね?(サイトによっては) キャッシュってブラウザやOSの仕様だそうですが、キャッシュが残らないように配信ってできないのでしょうか? <meta http-equiv="Pragma" content="no-cache"> <meta http-equiv="Cache-Control" content="no-cache"> <meta http-equiv="Expires" content="Thu, 01 Dec 1994 16:00:00 GMT"> こういうようなタグ(?)を付ければ完全ではないにしろ抑制できますよね? これができれば、プログレッシブダウンロードの仕組みで専用サーバを使うストリーミング配信のようなことが出来るのでは?? 何をとんちんかんなことをいってるんだと思われるかもしれませんが・・・回答よろしくお願いします。

  • Apacheでのリファラーアクセス制御について

    現在、Apacheの設定ファイルにリファラーチェックの ==================================================== <Directory "/var/www/html/test/data"> SetEnvIf Referer "^http://192.168.0.50/test/index.html" check Order deny,allow Deny from all Allow from env = check </Directory> ==================================================== を追加して、http://192.168.0.50/test/index.html以外から http://192.168.0.50/test/data内のhtmlにアクセスした場合は、 「403 Fobidden」の画面を表示させています。 実際に、index.htmlからdataのhtmlにアクセスした場合は 問題なくdata内のhtmlは表示されて、アドレスバーにdata内の htmlのアドレスを直接入力したり、ブックマークからアクセスすると 「403 Fobidden」が表示されます。 しかし、何度か正しい画面を表示したり「403 Fobidden」の画面を 表示したりしていると、キャッシュが残っているせいか、 「403 Fobidden」の画面が表示されなくてはいけないのに、 正しい画面が表示されたり、正しい画面が表示されるはずが 「403 Fobidden」が表示されたりします。 その際に「更新」をすると表示されるはずの画面に変わりますが 毎回「更新」をするわけにはいかないのでキャッシュを 無効にしようとしました。 それで、キャッシュを無効にするために =================================================== <Files ~ "\.(html|htm)$"> Header set Pragma no-cache Header set Cache-Control no-cache </Files> =================================================== を追加しました。 しかし、状況は変わりませんでした。 何かお気づきの点がありましたら、ご教示をお願い致します。