シンボリックリンクが存在するが壊れている場合に実行される書き換えルールを使用したいと考えています。
したがって、シナリオは次のようになります。
- シンボリック リンクが存在しません: 通常の 404/403 エラーです。
- シンボリックリンクは存在しますが壊れています: generate-cache.php が呼び出されます。
- シンボリック リンクが存在し、機能しています: ターゲット ファイルは正常に読み込まれます。
例えば:
## Symlink does not exist.
GET /links/cache/secret.jpg
404 Not Found
## Symlink is broken.
GET /links/cache/secret.jpg
Links to /images/cache/secret.jpg
Because it's broken, rewrites to: generate-cache.php?path=cache/secret.jpg
200 OK
## Symlink works.
GET /links/cache/secret.jpg
Links to /images/cache/secret.jpg
200 OK
更新: PHP を使用してこれらのチェックを行うことは避けたいと思います。パフォーマンスのボトルネックが発生するためです。ファイルが存在する場合、PHP を介してファイルを出力すると、PHP がロックされます。また、複数の PHP スレッドを使用したり、追加の apache モジュールをインストールしたりするオプションもありません。