Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Объектно-ориентированное программирование на PHP. Авторы: Кузнецов М.В., Симдянов И.В. PHP 5/6. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум Apache

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Не срабатывает проверка на существование файла через mod_rewrite
 
 автор: asdfasdf   (10.01.2012 в 12:26)   письмо автору
 
 

Всем доброго времени суток!

Задача: при существовании файла выдавать его из файловой системы, а при отсутсвии - выдавать редирект на удаленный хост.

Столкнулся с такой проблемой: во всех случаях всегда не находит локальный файл. Все пути верные, файлы по ним доступны.

Конфигурация:

<IfModule mod_rewrite.c>
RewriteEngine on
RewriteBase /
RewriteCond %{REQUEST_URI} /sites
RewriteRule . / [R,L,QSA]
RewriteCond %{REQUEST_URI} ^/mcskins
RewriteCond D:/Servers/Apache/Apache7/htdocs/mcskins/%{REQUEST_FILENAME} !-F
RewriteRule ^.*/(.*)\.png$ здесь был урл/$1.png [L,QSA]
RewriteCond %{REQUEST_URI} ^/mccloaks
RewriteCond %{REQUEST_FILENAME} !-F
RewriteRule ^.*/(.*)\.png$ здесь был урл/$1.png [L,QSA]
</IfModule>

Логи реврайта:

127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (3) [perdir D:/Servers/Apache/Apache7/htdocs/] strip per-dir prefix: D:/Servers/Apache/Apache7/htdocs/mcskins/fedyei.png -> mcskins/fedyei.png
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (3) [perdir D:/Servers/Apache/Apache7/htdocs/] applying pattern '.' to uri 'mcskins/fedyei.png'
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (4) [perdir D:/Servers/Apache/Apache7/htdocs/] RewriteCond: input='/mcskins/fedyei.png' pattern='/sites' => not-matched
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (3) [perdir D:/Servers/Apache/Apache7/htdocs/] strip per-dir prefix: D:/Servers/Apache/Apache7/htdocs/mcskins/fedyei.png -> mcskins/fedyei.png
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (3) [perdir D:/Servers/Apache/Apache7/htdocs/] applying pattern '^.*/(.*)\.png$' to uri 'mcskins/fedyei.png'
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (4) [perdir D:/Servers/Apache/Apache7/htdocs/] RewriteCond: input='/mcskins/fedyei.png' pattern='^/mcskins' => matched
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a45840/subreq] (3) [perdir D:/Servers/Apache/Apache7/htdocs/] strip per-dir prefix: D:/Servers/Apache/Apache7/htdocs/mcskins/fedyei.png -> mcskins/fedyei.png
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a45840/subreq] (3) [perdir D:/Servers/Apache/Apache7/htdocs/] applying pattern '^.*/(.*)\.png$' to uri 'mcskins/fedyei.png'
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a45840/subreq] (4) [perdir D:/Servers/Apache/Apache7/htdocs/] RewriteCond: input='/mcskins/fedyei.png' pattern='^/mcskins' => matched
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a45840/subreq] (4) [perdir D:/Servers/Apache/Apache7/htdocs/] RewriteCond: input='D:/Servers/Apache/Apache7/htdocs/mcskins/fedyei.png' pattern='!-F' => matched
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a45840/subreq] (2) [perdir D:/Servers/Apache/Apache7/htdocs/] rewrite 'mcskins/fedyei.png' -> 'здесь был урл/fedyei.png'
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a45840/subreq] (2) [perdir D:/Servers/Apache/Apache7/htdocs/] implicitly forcing redirect (rc=302) with здесь был урл/fedyei.png
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a45840/subreq] (2) [perdir D:/Servers/Apache/Apache7/htdocs/] trying to replace prefix D:/Servers/Apache/Apache7/htdocs/ with /
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a45840/subreq] (1) [perdir D:/Servers/Apache/Apache7/htdocs/] escaping здесь был урл/fedyei.png for redirect
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a45840/subreq] (1) [perdir D:/Servers/Apache/Apache7/htdocs/] redirect to здесь был урл/fedyei.png [REDIRECT/302]
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (5) RewriteCond file (-F) check: path=D:/Servers/Apache/Apache7/htdocs/mcskins/fedyei.png -> file=здесь был урл/fedyei.png status=302
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (4) [perdir D:/Servers/Apache/Apache7/htdocs/] RewriteCond: input='D:/Servers/Apache/Apache7/htdocs/mcskins/fedyei.png' pattern='!-F' => matched
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (2) [perdir D:/Servers/Apache/Apache7/htdocs/] rewrite 'mcskins/fedyei.png' -> 'здесь был урл/fedyei.png'
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (2) [perdir D:/Servers/Apache/Apache7/htdocs/] implicitly forcing redirect (rc=302) with здесь был урл/fedyei.png
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (2) [perdir D:/Servers/Apache/Apache7/htdocs/] trying to replace prefix D:/Servers/Apache/Apache7/htdocs/ with /
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (1) [perdir D:/Servers/Apache/Apache7/htdocs/] escaping здесь был урл/fedyei.png for redirect
127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a47848/initial] (1) [perdir D:/Servers/Apache/Apache7/htdocs/] redirect to здесь был урл/fedyei.png [REDIRECT/302]

Смущает данная строка:

127.0.0.1 - - [10/Jan/2012:11:12:39 +0300] [localhost/sid#995148][rid#a45840/subreq] (4) [perdir D:/Servers/Apache/Apache7/htdocs/] RewriteCond: input='D:/Servers/Apache/Apache7/htdocs/mcskins/fedyei.png' pattern='!-F' => matched

Ведь файл по данному пути открывается.

  Ответить  
 
 автор: cheops   (10.01.2012 в 14:46)   письмо автору
 
   для: asdfasdf   (10.01.2012 в 12:26)
 

А Apache у вас какой версии?

  Ответить  
 
 автор: asdfasdf   (10.01.2012 в 17:14)   письмо автору
 
   для: cheops   (10.01.2012 в 14:46)
 

Apache 2.2.21, а что?

  Ответить  
 
 автор: Sfinks   (10.01.2012 в 17:38)   письмо автору
 
   для: asdfasdf   (10.01.2012 в 17:14)
 

попробуйте -f вместо -F
У меня сработало.

  Ответить  
 
 автор: asdfasdf   (10.01.2012 в 18:04)   письмо автору
 
   для: Sfinks   (10.01.2012 в 17:38)
 

Ещё бы, ведь условие -f отвечает за валидность имен в файловой системе и никак не связано с подзапросами.

  Ответить  
 
 автор: cheops   (10.01.2012 в 20:25)   письмо автору
 
   для: asdfasdf   (10.01.2012 в 17:14)
 

>Apache 2.2.21, а что?
Без заднего умысла, просто чтобы знать, где ситуацию воспроизводить.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования