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的测试空间。