0

以下RewriteCondを使用して、画像、css、js 以外のすべてのファイルにルールを適用したいと考えています。

RewriteCond %{REQUEST_FILENAME} !\.(ico|jpg|jpeg|png|gif|js|css|svg|svgz)$

このルールは、ファイルへのパスが存在する場合に正常に機能します...

ただし、ファイルへのパスが存在しない (間違ったパスが指定された)場合、ファイルがリストの拡張子で終わっていても、ルールは続行されます。

ルールにパスが存在しない場合でもパスを含めるにはどうすればよいですか?

アップデート:

解決策は、%{REQUEST_FILENAME} の代わりに %{REQUEST_URI} を使用していました。

4

1 に答える 1

0

OK、問題が見つかりました:)

パスが存在しない場合REQUEST_FILENAME、FS上の実際のファイルにマップするパスは設定されません。

代わりに使用REQUEST_URIすると、問題が解決し、すべてのケースが正しく処理されます。

正しい指示:

RewriteCond %{REQUEST_URI} !\.(ico|jpg|jpeg|png|gif|js|css|svg|svgz)$
于 2012-11-13T10:21:56.737 に答える