为什么magento产品网址重复


10

我正在使用magento 1.7。我面临着奇怪的问题。magento使用错误的网址密钥制作带有随机数的重复产品网址,请附上我的屏幕截图

我也清空了表rewrite_urls并重新索引了URL,但是仍然我得到了错误的URL。请帮助我解决这个问题。如果您无法查看有问题的图像,请单击重复的产品网址管理面板中的产品的链接

重复的产品网址实际产品

让我用例子来了解你

就像我有一个名为“ example”的产品,URL键是“ example”一样,网址将是

www.example.com/example

现在我已经创建了新产品“ xyz,URL键是“ xyz”,URL应该是

www.example.com/xyz

但是magento会产生网址

www.example.com/example-123

你是说桌子core_url_rewrite
Fabian Blechschmidt

是的,我的意思是core_url_rewrite

发生这种情况是因为您拥有/拥有2个具有相同url密钥的产品。尝试截断core_url_rewrite表abd运行url再次重写索引器。
Dmytro Zavalkin

不,我已经检查过我具有唯一的URL密钥,并且我已经尝试过此选项“尝试截断core_url_rewrite表abd运行url再次重写索引器”

Answers:


6

这似乎是1.7中的错误。如果您有多个具有与可配置产品相​​同的url密钥的简单产品(例如,所有名称均相同),那么magento总是在每个索引进程上创建一个新的url重写。例:

第一个索引:

  • myproducturl(配置产品)
  • myproducturl-id(到目前为止,附加了其ID的简单产品)

第二个指标:

  • myproducturl(配置产品)
  • myproducturl-randomnumber(带随机数的简单产品,BAD)
  • myproducturl-id-> myproducturl-randomnumber(重写为新的URL)

并且在每个新的索引过程中,都会重复最后一步,因此总是会生成一个新的随机url密钥。如果magento会检查该产品ID的url密钥已经存在,则应该没有问题。

几个月后,您将拥有一个非常大的url_rewrite表,因为不会删除任何内容,并且在每次运行时,将为每个具有相同url密钥的产品至少创建1条记录。


这给我们带来了大问题。我们有1种产品,具有20种颜色变化,每种都有8种尺寸,因此,我们有很多简单的产品以相同的名称导入。由于url键是未指定的名称,因此最终会出现很多重复。令人烦恼的是,我们甚至没有单独访问的简单对象(这使得他们首先获得索引的嘲笑)。我们通过将简单的sku作为其名称的一部分导入来在某种程度上解决了这个问题,因为它在前端不可见,因此我们放弃了它。
彼得·奥卡拉汉

我也面临着这个问题,我的URL重写表在仅4000种产品中就有超过80,000个条目。如果有人对此有任何进一步的信息,请告诉我。
andyjv 2013年

有一个企业补丁程序可以解决CE的此问题。
brentwpeterson 2014年

@brentwpeterson您知道该补丁程序的ID吗?
Paul


7

我们也受到了这个错误的打击。我们每天都在重新编制索引,并在短短几天内为大约1000种产品获得了24,000个网址。

我相信我可能已经找到解决方法。我已将此修复程序发布到我们的生产站点上,并将了解其进展情况。如果其他人可以测试它会很有用。

  1. 万一出错,请备份core_url_rewrite表和数据

  2. 在app / code / core / Mage / Catalog / Model / Url.php第809行更改

    if ($product->getUrlKey() == '' && !empty($requestPath)
            && strpos($existingRequestPath, $requestPath) === 0
        )
    

    if (!empty($requestPath)
            && strpos($existingRequestPath, $requestPath) === 0
        ) 
    
  3. 截断(空)core_url_rewrite表

  4. 在系统->索引管理下,重新索引目录URL重写数据

现在,您应该能够重新索引,而无需创建数千个随机URL重写。

感谢Jahnni和snowcountry的修复-在此处了解更多信息:http : //www.magentocommerce.com/boards/viewthread/416476/

此处的错误报告:http : //www.magentocommerce.com/bug-tracking/issue? issue =15048


这对我有用。推荐
Sulabh '16

我认为这在1.9.x上无法正常工作。参见此处,了解有效的修复方法:gist.github.com/edannenberg/5310008
BlueC 2016年

0

新:

这太疯狂了。看起来像是缓存问题!?索引编制过程中的某些内容已损坏,但不知道,对不起。

旧:

我不知道为什么会这样,但是我写下了自己的经验和想法:

  1. 当Magento找到一个已经存在的重写时,它将附加一个计数数字。

  2. 当您更改重写时,magento会为旧的URL创建一个重写(如果选中了文本输入字段下的复选框)。

  3. 我认为自定义网址重写可能保存在其他地方,因此自定义重写会先应用,然后再尝试添加产品重写,如果不可能,是否添加了计数器?


请查看我的问题,我已再次对其进行更新,您的帖子现在对我

更新了答案,但无济于事:(
Fabian Blechschmidt
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.