htaccess редирект картинок на другой домен

Тема в разделе "Mod Rewrite / htaccess / ЧПУ", создана пользователем new_forward, 23 янв 2015.

  1. new_forward

    new_forward

    Регистр.:
    5 май 2008
    Сообщения:
    668
    Симпатии:
    44
    Доброго времени суток, хочу перенести картинки на другой домен на другом сервере, но редирект туда не получается сделать:

    Код:
    RewriteEngine On
    RewriteRule ^images/stories/(.*)$ http://site2.ru/images/stories/$1 [L,R]

    Редиректы страниц в htaccess работают отлично, а вот с картинками какая то лажа....

    Что не так?
     
  2. svfolder

    svfolder Постоялец

    Регистр.:
    31 июл 2013
    Сообщения:
    95
    Симпатии:
    39
    У вас как минимум 1 ошибка [R=301,L]
     
  3. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    322
    Симпатии:
    117
    Относительно редиректа - может быть, но как я понял - человек не хочет редиректить на другой сайт. Он хочет, что б на текущем сайте отображались страницы и картинки, но что б картинки тянулись не с текущего сайта, а с другого...

    Вопрос к ТС, а не пробовали данную функцию реализовать правкой файла шаблона? Например заменить ссылки картинок, сделать не /images/stories/img.jpg, а httр://site2.ru/images/stories/img.jpg

    Насчет .htaccess попробуйте следующее правило:
    Код:
    RewriteEngine On
    RewriteBase /
    RewriteRule ^images/stories/(.*)$ http://site2.ru/images/stories/$1 [QSA,L]
    
    если не сработает попробуйте это:
    Код:
    RewriteEngine On
    RewriteBase /
    RewriteCond %{REQUEST_URI} images/stories/.*
    RewriteRule (.*) http://site2.ru/$1 [QSA,L]
    
     
  4. new_forward

    new_forward

    Регистр.:
    5 май 2008
    Сообщения:
    668
    Симпатии:
    44
    Попробовал все предложенные варианты, не один не работает.... Когда открываешь картинку по урлу
    http://site1.ru/images/stories/img.jpg складывается впечатление что htaccess вообще не работает.

    Выводы такие потому что даже редирект на www не срабатывает....
    Код:
    RewriteCond %{HTTP_HOST} !^www\.(.*)$ [NC]
    RewriteRule ^(.*)$ http://www.%{HTTP_HOST}/$1 [R=301,L]
    RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ /index\.php\ HTTP/
    RewriteRule ^index\.php$ http://%{HTTP_HOST}/ [R=301,L]
    
    Точно лажа.
     
  5. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    322
    Симпатии:
    117
    Редиректы www не срабатывают только когда обращаешься к картинке, или по всему сайту в целом?
     
  6. lag

    lag

    Регистр.:
    13 окт 2014
    Сообщения:
    188
    Симпатии:
    228
    Похоже что перед apache стоит nginx и самостоятельно отдает статику.
    Посмотрите какие заголовки отдает сервер.
     
  7. new_forward

    new_forward

    Регистр.:
    5 май 2008
    Сообщения:
    668
    Симпатии:
    44
    только к картинке
     
  8. svfolder

    svfolder Постоялец

    Регистр.:
    31 июл 2013
    Сообщения:
    95
    Симпатии:
    39
    Нет не похоже! там же сказано что апачь.


    Вижу что редирект с www на домен без www както странно замудренно написан.
    Вот как оно более просто пишется.

    RewriteCond %{HTTP_HOST} ^www\.site1\.ru$
    RewriteRule (.*) http://site1.ru/$1 [R=301,L]


    Что касается картинок, всеже поясните, вам нужен именно редирект картинок или просто открытие с другого хоста?
     
  9. new_forward

    new_forward

    Регистр.:
    5 май 2008
    Сообщения:
    668
    Симпатии:
    44
    nginx есть

    Например: Картинка лежит на http://site1.ru/images/stories/img.jpg, я ее переношу физически на http://site2.ru/images/stories/img.jpg , но на сайте остается урл старый http://site1.ru/images/stories/img.jpg.
     
  10. UJy

    UJy

    Регистр.:
    23 авг 2011
    Сообщения:
    322
    Симпатии:
    117
    Все нормально там написано ;)
    У него правило добавляет www в начало, а вы ему написали правило, которое убирает www... Зачем?

    Как уже выше написал пользователь lag - у Вас на сервере картинки обрабатываются не при помощи apache, а при помощи nginx, поэтому какие бы Вы правила по работе с картинками не писали в htaccess - они работать не будут.

    Вам нужно править конфигурационный файл nginx и вносить правки туда. Другое дело, что на стандартных хостингах Вам не дадут права вносить правки в этот файл.
    Тут 2 варианта:
    1) попросить хостеров отключить обработку картинок nginx`ом для Вашего сайта, тогда начнут работать правила Апача. НО могут полезть ошибки, хотя кто его значет, что там в конфигурации у них написано...
    2) обратиться к хостерам с просьбой внести правку в конфигурационный файл nginx, если норм хостеры - откликнутся на просьбу.

    Правда я не знаю есть ли в nginx альтернатива апачевскому флагу QSA...