Форум Flasher.ru
Ближайшие курсы в Школе RealTime
Список интенсивных курсов: [см.]  
  
Специальные предложения: [см.]  
  
 
Блоги Правила Справка Пользователи Календарь Сообщения за день
 

Вернуться   Форум Flasher.ru > Flash > Серверные технологии и Flash

Версия для печати  Отправить по электронной почте    « Предыдущая тема | Следующая тема »  
Опции темы Опции просмотра
 
Создать новую тему Ответ
Старый 23.07.2010, 08:58
Serg65535 вне форума Посмотреть профиль Отправить личное сообщение для Serg65535 Найти все сообщения от Serg65535
  № 1  
Ответить с цитированием
Serg65535
 
Аватар для Serg65535

Регистрация: Jan 2010
Адрес: R = |z - z0|
Сообщений: 27
По умолчанию Не срабатывает RewriteRule, если файл существует

Доброе время, уважаемые коллеги.
Облазил уже всё, что мог — никак не найду причину странного поведения:

Я заметил, что на моём хостинге не срабатывают те правила RewriteRule, для которых запрашиваемый адрес реально существует.
Такое ощущение, что Apache даже не сообщает mod_rewrit'у об этом, а сразу отдаёт файл. Если обратится к несуществующему файлу — то правило срабатыват.

На денвере и другом хостинге всё работает.

Есть идеи, где эти настройки копать? Настройки Апача, или может в .htaccess можно что-то добавить?

Стоит задача перехватить обращения к некоторым файлам, и проделать с ними некоторые операции перед выдачей. Файл реально существуют, т.е. если отключить RewriteRule — будет отдан настоящий файл.

Заранее спасибо.

Старый 23.07.2010, 09:15
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 2  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
А техподдержка что говорит?

Старый 23.07.2010, 09:20
Serg65535 вне форума Посмотреть профиль Отправить личное сообщение для Serg65535 Найти все сообщения от Serg65535
  № 3  
Ответить с цитированием
Serg65535
 
Аватар для Serg65535

Регистрация: Jan 2010
Адрес: R = |z - z0|
Сообщений: 27
Цитата:
Сообщение от mooncar Посмотреть сообщение
А техподдержка что говорит?
Пока ничего - я списывал всё на свои ошибки, пока не сделал несколько тестов.
К сожалению, это выделенный сервер, все машины настроены под клиентов, поэтому не хочу дёргать платный саппорт, пока есть шанс понять причину такого поведения mod_rewrite.

Старый 23.07.2010, 10:15
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 4  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Насколько я понимаю идеологию .htaccess, правила, которые записаны в нем, имеют приоритет над правилами из родительских папок или пользовательских настроек Apache в httpd.conf. А покажите кусок из .htaccess .

Старый 23.07.2010, 10:29
Serg65535 вне форума Посмотреть профиль Отправить личное сообщение для Serg65535 Найти все сообщения от Serg65535
  № 5  
Ответить с цитированием
Serg65535
 
Аватар для Serg65535

Регистрация: Jan 2010
Адрес: R = |z - z0|
Сообщений: 27
Цитата:
Сообщение от mooncar Посмотреть сообщение
Насколько я понимаю идеологию .htaccess, правила, которые записаны в нем, имеют приоритет над правилами из родительских папок или пользовательских настроек Apache в httpd.conf. А покажите кусок из .htaccess .
Любое, даже самое лобовое правило. пример:

Код:
RewriteEngine On
RewriteRule ^(photos/.*\.jpg)$ watermark.php?filename=$1 [L]
Мой сервер ведёт себя так: если файл /photos/test.jpg есть, то он отдаётся напрямую, минуя скрипт. Если такого файла нету, то Rewrite перекидывает управление на watermark.php. А на локальной машине и другом хостинге watermark.php получает управление в любом случае.

Старый 23.07.2010, 10:48
mooncar вне форума Посмотреть профиль Отправить личное сообщение для mooncar Найти все сообщения от mooncar
  № 6  
Ответить с цитированием
mooncar
Модрон-ветеринар
 
Аватар для mooncar

администратор
Регистрация: May 2009
Адрес: г.Казань
Сообщений: 7,357
Отправить сообщение для mooncar с помощью ICQ Отправить сообщение для mooncar с помощью Skype™
Да, странно, тут вроде бы все верно.

Может быть явно попробовать указать условие существования файла?
Типа
Код:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^(photos/.*\.jpg)$ watermark.php?filename=$1 [L]


Последний раз редактировалось mooncar; 23.07.2010 в 10:58.
Старый 23.07.2010, 11:18
Serg65535 вне форума Посмотреть профиль Отправить личное сообщение для Serg65535 Найти все сообщения от Serg65535
  № 7  
Ответить с цитированием
Serg65535
 
Аватар для Serg65535

Регистрация: Jan 2010
Адрес: R = |z - z0|
Сообщений: 27
Нашёл причину, рву на себе волосы.

Просмотрел заголовки ответа сервера - картинки отдаёт не апач, а ngnix. Видимо, хостер настроил это для уменьшения нагрузки на вэбсервер - статику отдаёт другой демон.

Всем спасибо.

Создать новую тему Ответ Часовой пояс GMT +4, время: 18:11.
Быстрый переход
  « Предыдущая тема | Следующая тема »  

Теги
apache , mod_rewrite , RewriteRule

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.


 


Часовой пояс GMT +4, время: 18:11.


Copyright © 1999-2008 Flasher.ru. All rights reserved.
Работает на vBulletin®. Copyright ©2000 - 2026, Jelsoft Enterprises Ltd. Перевод: zCarot
Администрация сайта не несёт ответственности за любую предоставленную посетителями информацию. Подробнее см. Правила.