Редирект

Вот например. Мы сделали категорию fk. Заместо fanera-fk. Но не идет редирект со страниц этих категорий.
RewriteCond %{REQUEST_URI} ^/pilomaterialy/fanera/fanera-fk$
RewriteRule ^(.*)$ /pilomaterialy/fanera/fk [R=301,L]
Например
с
/pilomaterialy/fanera/fanera-fk/fanera-fk-2-2-sort/fanera-fk-1525x1525x3-mm-2-2-sort
на
/pilomaterialy/fanera/fk/fanera-fk-2-2-sort/fanera-fk-1525x1525x3-mm-2-2-sort
Как сделать редирект старой категории на новую включая еще и страницы в этой категории
never3d22
12 ноября 2022, 21:40
modx.pro
1
99
0

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

Громов Антон
12 ноября 2022, 22:08
0
как-то так
RewriteEngine on
RedirectMatch 301 /fanera-fk/ /fk/
Если меняете alias-ы, а не создаете новые категории, можно еще поставить autoRedirector на будущее.
    never3d22
    12 ноября 2022, 22:10
    0
    redirector стоит. Но не идет редирект со страниц этих категорий.
      Громов Антон
      12 ноября 2022, 22:45
      0
      Мой пример выше сработал?
      Можно еще плагинчик на событие OnPageNotFound сделать
      <?php
      if ($modx->event->name != 'OnPageNotFound') {return false;}
      $uri = $_SERVER['REQUEST_URI'];
      $search = '/fanera-fk/';
      $replace = '/fk/';
      
      if (strpos($uri, $search) !== false) {
          $replacement = str_replace($search,$replace,$uri);
          $newUrl = $modx->getOption('site_url').$replacement;
          $modx->sendRedirect($newUrl,array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
      }
        never3d22
        12 ноября 2022, 22:47
        0
        а если еще нужен редирект просто снизу дописать переменную?
          Громов Антон
          12 ноября 2022, 23:20
          0
          Не, снизу нельзя.
          Тогда в массив добавляйте
          <?php
          if ($modx->event->name != 'OnPageNotFound') {return false;}
          $uri = $_SERVER['REQUEST_URI'];
          $array = array(
              'fanera-fk' => 'fk',
              'search_2' => 'replace_2'
          );
          
          foreach($array as $key => $item) {
              if (strpos($uri, $key) !== false) {
                  $replacement = str_replace($key,$item,$uri);
                  $newUrl = $modx->getOption('site_url').$replacement;
                  $modx->sendRedirect($newUrl,array('responseCode' => 'HTTP/1.1 301 Moved Permanently'));
              }
          }
      Авторизуйтесь или зарегистрируйтесь, чтобы оставлять комментарии.
      5