Seo Prestashop-模块、搜索引擎优化和;URL和参数?

Seo Prestashop-模块、搜索引擎优化和;URL和参数?,seo,prestashop,Seo,Prestashop,我为Prestashop制作了一个模块,它将根据参数(&ID=X)中给定的ID显示内容 我想为这个模块设置一个好的url 使用SEO和url,我认为这是可能的,但它在url中保留了?id=X 例如,如果我将模块的url定义为 /pretty-module 我将有相同的链接,但id不同: /pretty-module?id=1 /pretty-module?id=23 我想做的是: /pretty-module => will set id to 1 /even-prettier-mod

我为Prestashop制作了一个模块,它将根据参数(&ID=X)中给定的ID显示内容

我想为这个模块设置一个好的url

使用SEO和url,我认为这是可能的,但它在url中保留了?id=X

例如,如果我将模块的url定义为

/pretty-module
我将有相同的链接,但id不同:

/pretty-module?id=1
/pretty-module?id=23
我想做的是:

/pretty-module => will set id to 1
/even-prettier-module => will set id to 23

我在后台的SEO和URL页面中没有看到“参数”选项,所以我想知道是否有可能做到这一点。

您需要连接到moduleRoutes

1) 在模块安装方法中:

if (!parent::install()           
    || !$this->registerHook('moduleRoutes')
    || !$this->registerHook('displayFooter'))
       return false;
2) 创建相应的钩子

public function hookmoduleRoutes($params) {
    $routes = array();
    $routes['module-examplemodule-handler'] = array(
        'controller'=>'handler',
        'rule'=>'promo{/:code}',
        'keywords'=>array(
            'code'=>array(
                'regexp'=>'[\w]+',
                'param'=>'short_code'
            )
        ),
        'params'=>array(
            'fc'=>'module',
            'module'=>'examplemodule',
            'controller'=>'handler'
        )
    );

    return $routes;
}
模块可能有多条路由。 约定为模块-[模块名称]-[模块控制器名称]

数组说明:

controller-handler(modules/examplemule/controllers/front/handler.php)

规则-大括号是参数。。你可以从中得到一个想法

关键字-在此配置规则中定义的参数(大括号)

用法示例:

在控制器“处理程序”中:

$short_code = Tools::getValue('short_code');
在prestashop 1.6上测试


参考资料:

我认为PS中没有办法做到这一点,但您可以编写自己的覆盖,看看这里的Thansk,但它似乎很重(覆盖了大量的预设置),仅此而已。我认为htaccess的设置会更简单(对于特定的用例,我希望找到一些简单的东西,一般来说。你应该在你自己的模块中设置它,我的意思是,模块应该覆盖用于URL处理的模块,你应该创建一个配置页,在其中定义“哪个URL是哪个ID”。你有一个免费模块的链接或如何做的教程吗?我很感兴趣:)这个链接不可用,我必须付费。这在Stackoverflow中不被接受。请在此处提供有效的免费链接或复制/粘贴解决方案。@cyrin。我发布了示例和解释很棒,我从-1切换到+1。你可以把这本书的链接放回去,只要答案是免费的(在StackOverflow中)(如果你是这本书的作者,这是件好事)。我现在不能测试,但一旦我可以,我会回来标记你的答案为接受,如果它解决了我的问题:)好的,谢谢你,我不是这本书的作者:)希望它能为你工作!