私はキャッシュで遊んでいます。私が欲しいのは、次のロジックです。
if ( file_exist(/cache/$request_uri.txt) ){
1. show that file
2. Stop all rewrite actions, but perform other actions (like charset, error_pages)
}
else{
do whatever you normally do
}
小さな例。次のファイルがあります
http://domain.com/example-123.htm (要求されたページ)
http://domain.com/cache/example-123.htm.txt (そのページのキャッシュ バージョン)
http://domain.com/someDir/example-456.htm (要求されたページ)
http://domain.com/cache/someDir/example-456.htm.txt (そのページのキャッシュ バージョン)
index.php で URL を解析してページを作成する代わりに、そのファイルを表示して停止したいと考えています。
私はこれでうまくいくと思いましたが、そうではありません:
RewriteCond ^cache%{REQUEST_URI}\.txt -f # check if the file exists in cache dir
RewriteRule ^(.*) /cache/$1\.txt [L] # i so, rewrite rule to it and stop
私の[L]
チートシートによると、「最後に - 処理ルールを停止します」。それが書き換えルールのみを意味する場合、それは私が必要とするものよりも.
私はそれを機能させることができません。正しい方向にプッシュすることができます:)
私は答えを解決策としてマークし、それがすべきことを正確に行いました。.htaccess ファイルでこれが必要な理由は、この方法では index.php が呼び出されず、データベースも呼び出されないためです。非常に高速で軽量な方法です。
ただし、これにより新しい問題が発生します。一部の項目 (メニューなど) は (頻繁に) 変更される可能性があります。つまり、変更のたびにすべてのキャッシュ ファイルを削除する必要があり、効率的に動作できなくなります。
この問題に取り組むために、いくつかの巧妙な .shtml ファイルを使用してその問題を解決できるかどうかを確認します (php を shtml ファイルで使用できるようにする必要があるかもしれません)。
興味のある人のために何か良いものができたらすぐに、この投稿を更新します