Seo Prestashop-模块、搜索引擎优化和;URL和参数?
我为Prestashop制作了一个模块,它将根据参数(&ID=X)中给定的ID显示内容 我想为这个模块设置一个好的url 使用SEO和url,我认为这是可能的,但它在url中保留了?id=X 例如,如果我将模块的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
/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中)(如果你是这本书的作者,这是件好事)。我现在不能测试,但一旦我可以,我会回来标记你的答案为接受,如果它解决了我的问题:)好的,谢谢你,我不是这本书的作者:)希望它能为你工作!