2012-02-16 8 views
1

複数のクライアント/サイトをホストできるカスタムCMSを作成しました。サイトとそのさまざまな部分は、/ client-name/site-nameディレクトリ構造内に格納されます。条件付きURLをPHPで書き換えます

htaccessは存在しないインデックスを通じてすべての要求を渡します。

「/clients/client-name/site-name/images/img.jpg」は理想的ではないので、「/images/img.jpg」を許可するには、リクエストをキャプチャしてから効果的にファイルの実際の場所を提供する。ヘッダーとすべて。私はCSS、JSなどのためにこれをやっています。

これはうまくいきましたが、これでファイルが適切にキャッシュされないことに気付きました。そのため、ページが提供されるたびに、全体が再び読み込まれ、痛いです。

これを回避する方法を知っている人はいますか? Apacheのconfigまたはhtaccessソリューションは問題ありませんが、ファイルの場所を知る必要があります。これは、CMSのインデックスによって解決されたDBからのものです。

ヘルプ!

+2

スクリプトですべての必要なキャッシュ関連のヘッダを送信することができます – zerkms

答えて

2

私はPHPスクリプト(私は1つのファイルを提供するようにJavaScriptを結合/縮小するために使用します)を使ってJavaScriptを提供しています。私はそれがキャッシュされます確認するために、次のヘッダーを使用

:私の場合は

header('Content-type: text/javascript'); 
header('Expires: ' . gmdate('D, d M Y H:i:s \G\M\T', time() + 6048000)); 

を、元のダウンロードは982msかかります。 (Firefox 10.0.1)

+0

ありがとう、なぜ私は追い抜くのを見逃したのか分かりませんヘッダー – DrKHunter

+0

@DrKHunter - 心配する必要はありません。 – Fenton

+0

ヘッダー( "Cache-Control:プライベート、最大年齢= 10800、事前チェック= 10800"); header( "Pragma:private"); header( "Expires:"。date(DATE_RFC822、strtotime( "2 day"))); は私が最後に使ったものです – DrKHunter