Вход • Регистрация

Господа, я в печали по поводу htacess

  • 25 марта 2018 г.
  • Поменял структуру сайта, хочу расставить редиректы;
    Код

    RewriteCond %{REQUEST_URI} ^.*/parent/old_child/.*$
    RewriteRule ^(.*)/parent/old_child/(.*)$ https://domain.ru/$1/parent/new_child/new_grandchild/$2 [R=301,L]

    Не работает. При отсутствии слэшей в первой части RewriteRule, типа
    Код

    RewriteCond %{REQUEST_URI} ^.*/old_child/.*$
    RewriteRule ^(.*)/old_child/(.*)$ https://domain.ru/$1/parent/new_child/new_grandchild/$2 [R=301,L]

    - все работает.
    Пробовал экранировать слэш бэкслэшем - без эффекта. Что я делаю не так?
    • 25 марта 2018 г.
    • Цитата
      RewriteRule kotly/gazovye-kotly/napolnye/napolnyy-gazovyy-kotel-baxi-slim-1300-in/ http://сайт.ru/napolnyy-gazovyy-kotel-baxi-slim-1300-in/$1 [R=301,L]


      Я так у клиента делала. Работает.

      А еще не забывайте, что в данном файле важна последовательность строк. Вставили не туда - и ау...
      • 25 марта 2018 г.
      • мне не подойдет - у меня название дочерней категории меняется + сама категория на уровень ниже переехала
      • 25 марта 2018 г.
      • Еще меня как-то насторожил факт, что в вашем варианте kotly/gazovye-kotly/napolnye/napolnyy-gazovyy-kotel-baxi-slim-1300-in/ воспринимается как переменная, хотя, дай бог памяти, чтобы объявить переменную в текущем перенаправлении - конструкцию надо в круглые скобки засовывать.
        • 25 марта 2018 г.
        • Цитата
          мне не подойдет

          А в чем разница? Подставляйте свое и вперед.

          Цитата
          Еще меня как-то насторожил факт

          Меня тоже много чего настораживало, но прочитав сообщение Виталия, я сделала по его примеру и все заработало.

          Вы хоть тему почитали? Попробовали сделать так же?
          • 26 марта 2018 г.
          • Как я понял, в вашем случае, после редиректа получается такое:
            http://сайт.ru/napolnyy-gazovyy-kotel-baxi-slim-1300-in/kotly/gazovye-kotly/napolnye/napolnyy-gazovyy-kotel-baxi-slim-1300-in/
            Или такое
            http://сайт.ru/napolnyy-gazovyy-kotel-baxi-slim-1300-in/
            ?
            В любом случае, у меня почему-то ничего не произошло; кэш сбрасывал, в браузере в том числе.
            Какбэ, если прямо из оригинального поста не понятно, суть примерно такова: мне по регулярке нужно прилепить массовый редирект товаров из старой категории в новую; метод Виталия работает для одной страницы, но как перекинуть по одной - я и так в курсе. Фокус в том, что у меня этих страниц в общей сложности штук 200, а категорий - раз в 10 меньше. Дело несколько осложняется еще и тем, что у меня в названиях товаров упоминается название категорий. Теперь - как работает магия, если совсем предметно:
            Код

            RewriteCond %{REQUEST_URI} ^.*/tsvergshnautser/.*$
            RewriteRule ^(.*)/tsvergshnautser/(.*)$ https://sunnydogspb.ru/$1/shnautser/tsvergshnautser/$2 [R=301,L]

            То есть, мне нужно перенести категории на уровень ниже. Если делать вот так, как написано - редирект работает, но до тех пор, пока не устает бесконечно вписывать "/shnautser" в УРЛ, а потом сервер пишет, что устал от редиректов. Поэтому я пытаюсь делать вот так:
            Код

            RewriteCond %{REQUEST_URI} ^.*/katalog-uslug/tsvergshnautser/.*$
            RewriteRule ^(.*)/katalog-uslug/tsvergshnautser/(.*)$ https://sunnydogspb.ru/$1/katalog-uslug/shnautser/tsvergshnautser/$2 [R=301,L]

            При этом RewriteCond вполне себе воспринимается, а вот 1-я часть RewriteRule - нет. И даже если обратиться к методу Виталия, я себе с некоторым скрипом представляю, как будет обрабатываться регулярка в качестве переменной в строке, если строка уже по-умолчанию заявлна как переменная. Вообще, у меня ощущение, что если в Диафане как-то с подвыподвертом htaccess работает, надо в ТП писать.
            • 26 марта 2018 г.
            • а не проще в базе данных в таблице rewrite удалить ненужную чать урла?
              • 26 марта 2018 г.
              • Не, сами новые урлы-то работают; я хочу кулютурно им устроить переезд со старых, а то мне старые урлы гугл по полгода потом припоминает
  • 27 марта 2018 г.
  • ТП диафана отправило в ТП хостинга, там велели убрать первый слэш после RewriteRule - у них такие настройки, что бы оно не значило - и помогло.

Новости

  • 18 июня
  • В сборке большое обновление demo-шаблона, дополнительная защита от спама, улучшение YML-импорта и еще много важного и интересного.
  • 24 апреля
  • В новой сборке совершили революцию в структурировании кастомизированной информации в шаблонах, добавили авторегистрацию пользователей, усовершенствовали защиту от спама, актуализировали накопительную скидку, а также улучшили производительность и стабильность работы системы.
  • 12 января
  • После выхода сборки 7.1 мы выпустили уже три патча, в каждом из которых улучшаем административную часть сайта. Сборка DIAFAN.CMS 7.1.3 уже доступна к установке. 

Форум