特定の静的ファイルがPHPフロントコントローラを通過するのを防ぐために.htaccessルールを使用しようとしていますが、動作していないようです。次のようにルールは以下のとおりです。このRewriteCondは、静的ファイルタイプをスキップするのがなぜ機能しないのですか?
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase/
# Don't try to pipe static files through php
RewriteCond %{REQUEST_URI} !^(.*)\.(png|jpg|jpeg|gif|js|css|json|mp3|mp4|mov|ogv|ogg|ico)$ [NC]
RewriteCond %{REQUEST_URI} !/wrapper/index\.php
RewriteRule ^(.*)$ /wrapper/index.php [L]
</IfModule>
特定の拡張子を持つファイルをスキップするための条件にもかかわらず、私はhttps://example.com/test.jpg
をヒットした場合、要求はまだ/wrapper/index.php
経由するたびにパイプされます。
私はちょうどテストするには、この変化を試みたが、それはどちらか動作しませんでした:
RewriteCond %{REQUEST_URI} (.+)\.(png|jpg|jpeg|gif|js|css|json|mp3|mp4|mov|ogv|ogg|ico) [NC]
RewriteRule ^(.*)$ $1 [L]
RewriteCond %{REQUEST_URI} !/wrapper/index\.php
RewriteRule ^(.*)$ /wrapper/index.php [L]
Apacheのエラーログに伝えるものは何もありません。たぶん私の心は、仕事の長い一日からちょうど疲れているかもしれませんが、書き換え条件の欠陥を特定できませんでした。ご協力いただきありがとうございます。
考えてくれてありがとうございますが、私はあなたの改訂された条件が変更をもたらさなかったことを報告するのが悲しいです。 –
私は努力を心から感謝しますが、それでも違いはありません。 –
まあ、更新された答えは実際に(静的なファイルリストに "txt"拡張子を追加することで)テストされ、期待どおりに動作します。それはあなたの.htaccessファイルの全内容ですか? –