Apacheの前にあるNginx(リバースプロキシとして設定)に問題があります。私はApacheを使用してPHPファイルを提供し、.htaccessルールを適用しています。
Nginxは機能しますが、.htaccessの一部の書き換えは機能しません。
私はtimthumb.phpを使用して次のようなメディアを管理します。
/cache/150/100/file.jpg > /media/thumb.php?src=images/file.jpg&w=150&h=100
書き換えルールはPHPアプリケーションでのみ機能しますが、上記の静的ファイルでは機能しません。独自の静的ルールを実行しようとすると、Nginxは404を返します。
RewriteEngine On
RewriteRule ^cache/([0-9]+)/([0-9]+)/([a-z0-9_\-\.\/]+)$ /media/thumb.php?src=images/$3&w=$1&h=$2 [L]
RewriteRule ^upload/([0-9]+)/([0-9]+)/([a-z0-9_\-\.\/]+)$ /media/thumb.php?src=upload/$3&w=$1&h=$2 [L]
<Files .*>
Order Deny,Allow
Deny From All
</Files>
RewriteRule ^(?:application|modules|system)\b.* index.php/$0 [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule .* index.php/$0 [PT]