1. Откройте файл
/classes/Dispatcher.php поднимите правила
cms_rule и
Код:
cms_category_rule
в самый верх (до
category_rule).
2. Откройте файл
/classes/Link.php найдите метод
getCMSLink добавьте после:
Код:
if (!is_object($cms))
{
Код:
if($c = new CMS((int)$cms))
$cat = CMSCategory::getUrlRewriteInformations($c->id_cms_category);
Код:
return $url.$dispatcher->createUrl('cms_rule', $id_lang, array('id' => (int)$cms, 'rewrite' => (string)$alias), $this->allow, '', $id_shop);
замените на:
Код:
return $url.$dispatcher->createUrl('cms_rule', $id_lang, array('id' => (int)$cms, 'cms_rewrite' => (isset($cat[0]['link_rewrite']) ? $cat[0]['link_rewrite'] : null), 'rewrite' => (string)$alias), $this->allow, '', $id_shop);
после:
Код:
$params['id'] = $cms->id;
добавьте:
Код:
$cat = CMSCategory::getUrlRewriteInformations($cms->id_cms_category);
$params['cms_rewrite'] = (isset($cat[0]['link_rewrite']) ? $cat[0]['link_rewrite'] : null);
3. в
cms_rule:
Код:
'rule' => 'content/{id}-{rewrite}',
замените на:
Код:
'rule' => '{cms_rewrite:/}{id}-{rewrite}/',
после:
Код:
'rewrite' => array('regexp' => '[_a-zA-Z0-9-\pL]*'),
добавьте:
Код:
'cms_rewrite' => array('regexp' => '[_a-zA-Z0-9-\pL]*'),
в
cms_category_rule
Код:
'rule' => 'content/category/{id}-{rewrite}',
замените на:
Код:
'rule' => '{id}-{rewrite}',
И ещё может кто посоветует хороший модуль для редиректа дублирующихся страниц??
В
prestashop (если не переписаны контроллеры / классы) нет возможности добавить (создать) дублирующую страницу!
canonicalRedirection обрабатывает каждый запрос.
Если подобная ошибка возникает - опишите подробнее (приложите ссылки).