Magento2类目和产品url伪静态生成

Magento2出来后确实一堆BUG,还在2.0的时候就遇到url的错误。

 

其一是设置类目伪静态为/,产品伪静态为.html时会出现BUG。解决方案方法如下:

目录伪静态不能为/
bug地址:https://github.com/magento/magento2/pull/7041/commits/1f9a6ec7e106b9778e45356511d4b95defa386c5
修改文件/vendor/magento/module-url-rewrite/Controller/Router.php
130行UrlRewrite::REQUEST_PATH => trim($requestPath, ‘/’),改为UrlRewrite::REQUEST_PATH => ltrim($requestPath, ‘/’),

 

其二是遇到了magento2的伪静态地址出现.html.html的重复,甚至出现了目录.html/产品.html.html的情况,这就比较混乱了。

目前官方似乎也没有好的解决办法,最好的办法竟然是批量修改数据库。

 

今天遇到了第三个问题,一方面在magento2.1.8中出现了类目和产品伪静态出现了上述的bug之外,清空了数据表url_rewrite和catalog_url_rewrite_product_category之后,程序无法自动生成伪静态地址。解决办法如下:

1,后台Configuration-category 设置伪静态均为空

2,使用第三方插件自动生成,见地址https://github.com/Iazel/magento2-regenurl

生成目录:php bin/magento iazel:regenerate_urls
生成产品:php bin/magento iazel:regenurl
指定店铺1:php bin/magento iazel:regenurl -s1

如果还有错,就需要在数据库中进行修改,主要是url_rewrite这个表

但是在实际情况中遇到了Magento2的urlkey重复,其实在上传产品时urlkey就生成了urlpath,而更改了urlkey并没有直接更新urlpath,后来找到了对应的数据表catalog_product_entity_varchar,只需要根据产品ID来更改urlpath即可。

当然这种BUG出现是可以避免的,比如在Magento2上传产品之前就检查name和urlkey重复。

 

Magento2.2也即将出正式版,相信经过几个版本的迭代之后,Magento2将越来越受欢迎,达到Magento1.x的高度。

SHU88作为专业的Magento主机提供商将一如既往给各位Magento使用者提供Magento主机,如果有需要使用Magento2的朋友,我们将免费提供Magento2的测试空间。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据

用户的评价

SHU88提供专业服务,并且有丰富的建站经验,回复都挺及时的,以后继续品牌之路。 ------------- 杭州沃熔科技