2009-11-11 3 views
1

Я пытаюсь сделать что-то вроде следующего в моем файле .htaccess:Невозможно mod_rewrite на основе существования файла в mod_aliased каталоге?

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, начиная с/активов/
  • Апач проверяет существование файла
  • если найден, файл служившие
  • , если нет, то скрипт запускается вместо

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

Есть ли способ получить Mod Rewrite, чтобы подтвердить каталог с псевдонимом?

Возможно ли изменить линию псевдонимов на линию перезаписи?

+0

В моем случае мне удалось обойти эту проблему путем удаления директивы Alias, от моего апача конфигурации и положить мягкую ссылку в файловую систему, вместо. Наверное, было бы не очень полезно, если бы вы были на окнах. –

ответ

0

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

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

Интересная идея, я не знал, что вы можете это сделать. К сожалению, я все еще не работаю. # это просто ошибки 404 (кажется, отображение Алиас для активов # в апача конф означает, что он не может даже получить здесь) RewriteCond% {REQUEST_URI} ^/активы/[0-9] +. JPG $ RewriteRule. * /build_thumbnail.cfm [QSA, L] # это работает, потому что IMG реальный каталог в корневой веб RewriteCond% {REQUEST_URI} ^/IMG/[0-9] +. JPG $ RewriteRule. * /build_thumbnail.cfm [QSA, L] –

 Смежные вопросы

  • Нет связанных вопросов^_^