Мне нужно сократить адрес в браузере в PrestaShop с " csblog / post " до " blog ". Клиент использует плагин блога "CS Blog", который генерирует как ссылки, так и адреса.
csblog является модулем, post является контроллером.
схема адреса: / csblog / post / friendly-name
Уже пытался изменить схемы ссылок и адресов в файлах плагинов и нашел, где именно это делается, но после смены модуля и контроллера - он ломается. Он не может найти сообщения или нет страницы показывает ошибки.
Уже пробовал различные .htaccess переписывать предложения в основном приложении (в папке и в главной папке модуля. Никаких эффектов.
Нет никакой помощи в интернете, так как этот плагин не очень популярен.
Это мой текущий код в .htaccess:
Options +FollowSymLinks
RewriteEngine On
RewriteCond %{THE_REQUEST} ^[A-Z]{3,9}\ csblog/post/([^&\]+)
RewriteRule ^blog/%1? [L]
Как я могу сделать этот короткий адрес, должен ли он быть сделан с .htaccess или управляться только через плагин?
Функция, которая генерирует ссылки:
{
if (!$id_lang)
$id_lang = Context::getContext()->language->id;
$id_shop = Context::getContext()->shop->id;
$url = Context::getContext()->link->getBaseLink($id_shop).$this->getLangLink($id_lang, null, $id_shop);
$params['module'] = $module;
$params['controller'] = $controller ? $controller : 'default';
$dispatcher = Dispatcher::getInstance();
$dispatcher->addRoute('cs_blog_post', '{module}{/:controller}/{id_cs_blog_post}-{category_parent}-{rewrite}.html', null, 1, array(//{module}{/:controller}
'module' => array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'module'),
'controller' => array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'controller'),
'category_parent' => array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'category_parent'),
'id_cs_blog_post' => array('regexp' => '[0-9]+', 'param' => 'id_cs_blog_post'),
'rewrite' => array('regexp' => '[_a-zA-Z0-9-\pL]*'),
), array('fc' => 'module',));
// If the module has its own route ... just use it !
if ($dispatcher->hasRoute('module-'.$module.'-'.$controller, $id_lang))
return Context::getContext()->link->getPageLink('module-'.$module.'-'.$controller, $ssl, $id_lang, $params);
else
return $url.$dispatcher->createUrl('cs_blog_post', $id_lang, $params);
}
Функция создания адреса блога:
public function hookModuleRoutes($params){
'cs_blog_post' => array(
'controller' => null,
'rule' => '{module}{/:controller}/{id_cs_blog_post}-{category_parent}-{rewrite}.html',
'keywords' => array(
'module' => array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'module'),
'controller' => array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'controller'),
'category_parent' => array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'category_parent'),
'id_cs_blog_post' => array('regexp' => '[0-9]+', 'param' => 'id_cs_blog_post'),
'rewrite' => array('regexp' => '[_a-zA-Z0-9-\pL]*'),
),
'params' => array(
'fc' => 'module',
),
),
}