1

私はキャッシュで遊んでいます。私が欲しいのは、次のロジックです。

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 ファイルで使用できるようにする必要があるかもしれません)。
興味のある人のために何か良いものができたらすぐに、この投稿を更新します

4

1 に答える 1