Мы используем cookie-файлы
Для оптимизации работы нашего сайта мы используем cookie-файлы. Продолжая использовать сайт, Вы соглашаетесь с использованием cookie-файлов.
Панель управления
  • Русский
  • Українська
  • UAH
  • USD
  • RUB
  • EUR
  • +38(044) 392-74-33  Киев
  • +38(057) 728-39-00  Харьков
  • +38(056) 794-38-31  Днепр
  • +38(032) 229-58-93  Львов
  • +38(048) 738-57-70  Одесса
  • +38(093) 170-15-42  Life
  • +38(067) 400-88-44  Киевстар
  • +38(095) 630-90-82  Vodafone
  • +1(888)393-24-51  USA, Toll free
  • +44(131)507-01-14  Great Britain
  • +7(499) 348-28-61  Москва

Хостинг. Помогите написать правильный редирект


zaga89
5 лет
0
Помогите написать правильный редирект

такая задача, урл несуществующих картинок редиректить нужно на php файл, где там уже будет образовываться новый урл для картинки...вот что пишем в htaccess :
RewriteCond %{REQUEST_FILENAME} ^.*\/images\/product_images\/(info_images|popup_images|thumbnail_images)\/(\d+)_(\d+)\.(jpg|jpeg|gif|png)$
RewriteCond %{REQUEST_FILENAME} -f
RewriteRule ^.*\/images\/product_images\/(info_images|popup_images|thumbnail_images)\/(\d+)_(\d+)\.(jpg|jpeg|gif|png)$ imagelocator.php?$1 [L]
По идее она должна делать редирект на скрипт imagelocator.php
Но редирект не происходит, почему? что не так? можете подсказать плиз

ZimbalisT
5 лет
0

а расширения картинок удалены из статики?

zaga89
5 лет
0

нет, тоесть нужно удалить из кеширования картинки?

ZimbalisT
5 лет
0

Нет, прошу прощения. Если картинки нет, то опции Передавать запрос на бекенд в случае, если статический файл не найден должно быть достаточно.
Попробуйте закоментировать ErrorDocument
Не уверен, но кажется у этой директивы приоритет выше чем у редиректа.

zaga89
5 лет
0

удалил вообще, но теперь выдает просто 404 ошибку от хостинга, тоесть по сути ниче не поменялось и редиректа нету

Евгений В.
5 лет
0

Попробуйте удалить расширения jpg|jpeg|gif|png из списка "Мои сайты" -- "настройка сайта" -- "Статические файлы" и проверить через 40 минут после этого.

zaga89
5 лет
0

проверял, как тока посоветовали выше, не помогло, в поддержке посоветовали такое правило:
RedirectMatch ^/images/product_images/(info_images|popup_images|thumbnail_images)/(.*)$ http://сайт/imagelocator.php?$1
этот редирект работает но он отдает 302 редирект а мне нужен 301, а это тока через RewriteRule правило....шо деееелаать((((

zaga89
5 лет
0

в техподдержке сказали что правило
RewriteRule ^.*\/images\/product_images\/(info_images|popup_images|thumbnail_images)\/(\d+)_(\d+)\.(jpg|jpeg|gif|png)$ imagelocator.php?$1 [L]
не правильное, но поправить само правило отказались....мож кто здесь на форуме поможет правильно оформить?? целый день бьюсь с этим редиректом

ZimbalisT
5 лет
0
zaga89
5 лет
0

нет не подойдет, мне нужно редирект на php файл где мы уже эту ссылку обработаем...но вот с редиректом проблема....

ZimbalisT
5 лет
0

RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteRule \.(jpg|jpeg|gif|png)$ /imagelocator.php [L]
ну вот так же должен работать

zaga89
5 лет
0

хммм....да, вот этот вариант работает
благодарю, буду пробовать, данные из php выводит, по идее то что надо, завтра отпишусь как всё доделаем, спасибо за подсказку))

zaga89
5 лет
0

вроде сделали, всё работает, но волнует проблема. в логах хостинга пишет тока:
GET /images/product_images/popup_images/69563_1.jpg HTTP/1.1" 301 12 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.39 Safari/537.36 OPR/29.0.1795.21 (Edition beta)
обычно после 301 пишет 200 ответ, загрузки новой страницы, но почему то в логах нету, хотя ответ сервера правильный с 301 и новой ссылкой, и ссылка новая загружается....все работает

Евгений В.
5 лет
0

Смотрите в следующих строках лога (позже записи с 301-м), так как тут механика какая - один запрос к серверу - один ответ.
То есть, браузер посылает запрос серверу, получает ответ 301 и новый адрес страницы, посылает новый запрос (по полученному в предыдущем адресу), получает ответ 200 и html-код страницы.

zaga89
5 лет
0

так вот в том то и проблема, что следующих логов нету с 200 ответом...я ж о чем, как то странно..хотя проверял ответ сервера, всё правильно отдается. и в инструментах разработчика показывается два запроса, первый 301 второй 200, как и надо...а в логах почему то нету такого

Участвовать в общении на этом форуме могут только зарегистрированные пользователи.