1

.htaccess ファイルで次のようなことをしようとしています:

Alias /assets /location/of/files

RewriteCond %{REQUEST_URI} ^/assets/[0-9]+.jpg$
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule .* /build_thumbnail.cfm?path=%{REQUEST_URI} [QSA,L]

したがって、理論的には非常に簡単です。

  • /assets/ で始まる URL から画像が要求されます
  • Apacheはファイルの存在をチェックします
  • 見つかった場合、ファイルが提供されます
  • そうでない場合は、代わりにスクリプトが実行されます

これは他の場所では正常に機能していますが、エイリアスとして含まれているディレクトリで使用しようとしたのはこれが初めてです。私が理解しているように、Mod RewriteはMod Aliasの前に実行されるため、これは確実に機能しなくなります(実際、私のAlias行はapache confにあり、残りは.htaccessにあります)。

Mod Rewrite に Aliased ディレクトリを認識させる方法はありますか?

Alias 行を Rewrite 行に変更することはできますか?

4

1 に答える 1

0

-F代わりにサブリクエストを呼び出してみてください:

RewriteCond %{REQUEST_URI} ^/assets/[0-9]+.jpg$
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule .* /build_thumbnail.cfm?path=%{REQUEST_URI} [QSA,L]
于 2009-11-12T17:32:31.350 に答える