Как исключить из адреса ссылки раздел?

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

http://site.ru/catalog/igrushki/minoni/tovar.html
а нужно из адреса вырезать для всех остальных /catalog/, чтобы получилось так:

http://site.ru/igrushki/minoni/tovar.html
А раздел с каталогом должен в админке остаться неизменным, т.к. все категории товаров и товары идут дочерними документами от него. Может есть готовое решение?
Андрей Копп
03 марта 2016, 11:18
modx.pro
3
2 194
+1

Комментарии: 10

Евгений
03 марта 2016, 14:57
0
Наверно только через правила в .htaccess но как я не подскажу, не силен в регулярных выражениях.
Вот нашел:
blogerator.ru/page/fajl-primery-htaccess-redirekt-dostup

16. Удаляем «category» из URL

Для изменения ссылки yourdomain.com/category/blue на yourdomain.com/blue, просто добавьте следующий код в конце вашего .htaccess файла.

#Удаляем category из URL
RewriteRule ^category/(.+)$ http://www.site.com/$1 [R=301,L]
    Евгений Шеронов
    03 марта 2016, 15:44
    +1
    В MODX есть такая стандартная опция: «Заморозить ссылку».

    Для текущих товаров прогнать через консоль постановку галочки и удаление из ссылки «catalog», а для новых создать плагин, который будет замораживать ссылку без «catalog».
      Андрей Копп
      03 марта 2016, 19:00
      0
      А есть пример плагина? С плагинами если честно не очень дружу.
        Роман Садоян
        03 марта 2016, 22:03
        0
        В минимальном варианте что-то типа такого:
        if ($modx->event->name == 'OnDocFormSave' ) {
                if(!$uriOverRide = $resource->get('uri_override')){
                    $uri = $resource->get('uri');
                    $pattern = 'catalog/';
                    $uri = preg_replace($pattern, '', $uri);
                    $resource->set('uri', $uri);
                    $resource->set('uri_override', 1);
                    $resource->save();
                }
            }
        Не могу сейчас сказать нужно ли тут сохранение или нет.
    Георгий Пушкин
    04 мая 2016, 19:45
    0
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      10