$1 ではなく %1 のお話です。
今まで画像をキャッシュしたり生成したりというのは
全部プログラム側で書いてたわけですが、
if (file_exists(IMG_CACHE_DIR.$cacheFile)) {
$image = imagecreatefromjpeg (IMG_CACHE_DIR.$cacheFile);
} else {
$image = imagecreatefromjpeg ($imgBack);
//画像加工処理
imagejpeg($image,IMG_CACHE_DIR.$cacheFile);
}
header("content-type: image/jpg");
imagejpeg($image);
imagedestroy($image);
まあこんなかんじで、キャッシュヒットもプログラム側で書いてたわけで、
これがどうにも地味に遅いので、何とか回避するべく頭をひねったお話です。
でまあ結論から言うと .htaccess のほうで
キャッシュヒットの処理を書いてしまうことに。
こんなかんじです。
//ファイルが画像の場合
RewriteCond %{REQUEST_URI} ^(.*\.(jpg|gif|png|jpeg))$
//cacheフォルダのキャッシュとヒットするか確認
RewriteCond %{DOCUMENT_ROOT}/cache/%1 -f
//ヒットしたらリライトして表示させる
RewriteRule .* /cache/%1 [L]
ポイントは %1 を使ってRewriteCondでヒットさせた参照を使用することで、
http://a.com/a.gif がキャッシュファイルである http://a.com/cache/a.gif
にヒットさせるってとこですかね。
今まで$1とかしか使ってなかったわけですが、%のが便利だなーと。