ファイルが見つからない場合に特定の cakephp コントローラ アクションが実行されるように、lighttpd の書き換えルールを設定しようとしています。controller-action はデータ (png ファイル) を生成し、将来の使用のために保存してから、クライアントに提供します。次に誰かがファイルにアクセスしようとすると、php を実行せずに lighttpd によって直接提供されます。つまり、png ファイルはキャッシュされるため、再作成する必要はありません。
私が知る限り、 rewrite-once が一致する場合、 url.rewrite-if-not-file は無視されます。したがって、以下はキャッシュされたファイルを提供できますが、キャッシュされていないファイルは提供できません。
url.rewrite-if-not-file = (
"^/scan/(.+)\.png" => "/mycontroller/scan/$1"
)
url.rewrite-once = (
"^/(css|files|img|js)/(.*)" => "/$1/$2",
"^/favicon.ico" => "/favicon.ico",
"^/scan/(.+\.png)" => "/scan/$1",
"^([^\?]*)(\?(.+))?$" => "/index.php?url=$1&$3",
)
今考えられる唯一の解決策は、3 番目のルールを削除して変更^([^\?]*)(\?(.+))?$
し、 で始まる URL を無視すること\scan\
です。
他の提案はありますか?