mod_rewrite を使った簡易的なキャッシュ
簡易的なページのキャッシュ方法。ログイン状態で表示切替えが必要なページには使えないが、ブログの記事のように出力結果が静的でページの生成が重い場合は効果が期待できる。
参考: http://d.hatena.ne.jp/ruby-U/20090131/1233372302
- mod_rewrite でキャッシュがあるかを判別
- あればキャッシュを返す
- なければ PHP に処理が渡る
- PHP は キャッシュを生成してから HTML を返す
- キャッシュは cronで定期的に削除される
.htaccess 例:
<IfModule mod_rewrite.c> RewriteEngine on # hoge/xxxx/ のキャッシュ cache/hoge/xxxx.html があるかを判別する RewriteRule ^hoge/([0-9a-z]+)/?$ cache/hoge/$1.html [L] # なければ fuga.php に処理を渡し、キャッシュを生成する RewriteCond %{REQUEST_FILENAME} !-s RewriteRule ^cache/hoge/(.+)$ fuga.php?page=$1 [L] </IfModule>
ふと、mod_cache を使ったほうがいいのかも?と思ったが、使えるモジュールが限られている環境の場合は、一つの選択肢としてありかと思った。