Невозможно mod_rewrite на основании наличия файла в каталоге mod_aliased? - PullRequest
1 голос
/ 12 ноября 2009

Я пытаюсь сделать что-то вроде следующего в моем файле .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]

Так что в теории все довольно просто:

  • изображение запрашивается из URL, начинающегося с / assets /
  • apache проверяет наличие файла
  • если найден, файл обслуживается
  • если нет, вместо этого запускается скрипт

Это хорошо работает в других местах, но я впервые пытаюсь использовать его в каталоге, включенном в качестве псевдонима. Насколько я понимаю, Mod Rewrite запускается до Mod Alias, что, несомненно, приведет к тому, что это не будет работать (и на самом деле моя строка Alias ​​находится в apache conf, а остальные в .htaccess).

Есть ли способ заставить Mod Rewrite подтвердить каталог Aliased?

Возможно ли вместо этого изменить строку псевдонима на строку перезаписи?

1 Ответ

0 голосов
/ 12 ноября 2009

Вместо этого попробуйте -F, чтобы вызвать подзапрос:

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