2011-07-19 17 views
1

私はPHPベースのウェブサイトを持っており、ブラウザに30日間イメージをキャッシュしたいと思います。私はmodを有効にするためのapache設定にアクセスできない共有ホスティングソリューションを使用していますヘッダーや他のモジュールであるため、htaccessメカニズムを使用することはできません。ブラウザに強制的に画像をPHPウェブサイトにキャッシュする

私のサイトは、通常のPHPアプリケーションであり、htmlのコンテンツと画像の両方を持っています。ブラウザに画像のみをキャッシュしたい。私はPHPの "ヘッダー"関数を見てきましたが、イメージキャッシュだけを強制する方法を見つけることができませんでした..私はそれについてどうやって行くのですか?あなたは、ヘッダーを設定するようにApacheへのアクセスを得ることができない場合

+0

[ブラウザをイメージにキャッシュする](http://stackoverflow.com/questions/1285354/how-to-force-a-web-browser-to-cache-images) – hakre

+0

もう1つのDupe:[ブラウザにイメージをキャッシュする方法、 php?](http://stackoverflow.com/questions/1385964/how-to-get-the-browser-to-cache-images-with-php) – hakre

+0

HTTP/1.0、HTTP/1.1、またはその両方用ですか?タイプのリクエスト? – hakre

答えて

3

私の知る限りでは、あなたの唯一のオプションは、あなたがするPHPヘッダーメソッドを使用できるようにPHPスクリプトから画像を提供することです

感謝ヘッダーを設定します。

この場合、PHPイメージハンドラを作成し、すべてのイメージタグをこのハンドラの呼び出しで置き換える必要があります(例:http://mysite.com/imagehandler.php?image=logo.png)。その後、imagehandler.phpスクリプトを使用してファイルシステムからイメージを取得し、MIMEタイプとキャッシュコントロールヘッダーを設定し、イメージをクライアントに戻します。

あなた自身で書くこともできますし、GoogleであればイメージハンドラのPHPスクリプトを見つけることもできます。いずれにしても、セキュリティに重点を置いてください。クライアントがあなたのWebサーバーから任意のファイルを取得することを許可しないでください。それはかなり大きなセキュリティホールとなるためです。

+0

うわー!それはあまりにも大きな変更です.. btw、ちょうどヘッダキャッシュの時代を設定することによって、ページ全体(データを含む)をキャッシュするでしょうか? –

+0

HTTPヘッダーは各リクエストに適用されます - そうではありませんが、私はあなたがそのページのすべての子をキャッシュするように設定することはできません。 はい、大きな変化です.... –

関連する問題