我是prestshop用户,我想找到一个url分类解决方案
我需要知道删除Prestashop url的类别id(数字)的过程。例如www.mydomain.com/16-myproducts
对
实际上你可能会重写Dispatcher.php类。这很大程度上取决于你使用的是哪个版本。
这是我们去年在maltt1.6上做的,请注意这个代码,因为它可能已经过时了,它也涵盖了其他情况(产品,供应商…):
/*
* @author Matt Loye <matthieu@agence-malttt.fr>
* @copyright 2016-2017 Agence Malttt
*/
class Dispatcher extends DispatcherCore
{
/**
* @var array List of default routes
*/
public $default_routes = array(
'supplier_rule' => array(
'controller' => 'supplier',
'rule' => 'supplier/{rewrite}/',
'keywords' => array(
'id' => array('regexp' => '[0-9]+'),
'rewrite' => array('regexp' => '[_a-zA-Z0-9-pL]*', 'param' => 'supplier_rewrite'),
'meta_keywords' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
'meta_title' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
),
),
'manufacturer_rule' => array(
'controller' => 'manufacturer',
'rule' => 'manufacturer/{rewrite}/',
'keywords' => array(
'id' => array('regexp' => '[0-9]+'),
'rewrite' => array('regexp' => '[_a-zA-Z0-9-pL]*', 'param' => 'manufacturer_rewrite'),
'meta_keywords' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
'meta_title' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
),
),
'cms_rule' => array(
'controller' => 'cms',
'rule' => 'info/{rewrite}',
'keywords' => array(
'id' => array('regexp' => '[0-9]+'),
'rewrite' => array('regexp' => '[_a-zA-Z0-9-pL]*', 'param' => 'cms_rewrite'),
'meta_keywords' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
'meta_title' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
),
),
'cms_category_rule' => array(
'controller' => 'cms',
'rule' => 'info/{rewrite}/',
'keywords' => array(
'id' => array('regexp' => '[0-9]+'),
'rewrite' => array('regexp' => '[_a-zA-Z0-9-pL]*', 'param' => 'cms_category_rewrite'),
'meta_keywords' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
'meta_title' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
),
),
'module' => array(
'controller' => null,
'rule' => 'module/{module}{/:controller}',
'keywords' => array(
'module' => array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'module'),
'controller' => array('regexp' => '[_a-zA-Z0-9_-]+', 'param' => 'controller'),
),
'params' => array(
'fc' => 'module',
),
),
'product_rule' => array(
'controller' => 'product',
'rule' => '{category:/}{rewrite}.html',
'keywords' => array(
'id' => array('regexp' => '[0-9]+'),
'rewrite' => array('regexp' => '[_a-zA-Z0-9-pL]*', 'param' => 'product_rewrite'),
'ean13' => array('regexp' => '[0-9pL]*'),
'category' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
'categories' => array('regexp' => '[/_a-zA-Z0-9-pL]*'),
'reference' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
'meta_keywords' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
'meta_title' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
'manufacturer' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
'supplier' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
'price' => array('regexp' => '[0-9.,]*'),
'tags' => array('regexp' => '[a-zA-Z0-9-pL]*'),
),
),
'layered_rule' => array(
'controller' => 'category',
'rule' => '{rewrite}/filter{selected_filters}',
'keywords' => array(
'id' => array('regexp' => '[0-9]+'),
/* Selected filters is used by the module blocklayered */
'selected_filters' => array('regexp' => '.*', 'param' => 'selected_filters'),
'rewrite' => array('regexp' => '[_a-zA-Z0-9-pL]*', 'param' => 'category_rewrite'),
'meta_keywords' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
'meta_title' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
),
),
'category_rule' => array(
'controller' => 'category',
'rule' => '{rewrite}/',
'keywords' => array(
'id' => array('regexp' => '[0-9]+'),
'categories' => array('regexp' => '[/_a-zA-Z0-9-pL]*'),
'rewrite' => array('regexp' => '[_a-zA-Z0-9-pL]*', 'param' => 'category_rewrite'),
'meta_keywords' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
'meta_title' => array('regexp' => '[_a-zA-Z0-9-pL]*'),
),
),
);
}