网址末尾的数字Magento 1.9

时间:2016-04-25 10:20:39

标签: magento magento-1.9

在我们的网站上,我们曾经拥有大量链接,这些链接的末尾有4位数字。他们看起来像这样

www.example.com/example-1234.html. 

带有数字的网址已覆盖普通网址,就像

一样
   www.example.com/example.html.

我们通过截断core_url_rewrite表来摆脱它们,这将活动URL与其末尾的数字转换为404。

然而,最近我注意到这些数字已经回来了,我不确定为什么。但是,这次它们也影响了类别URL,因此我们的某些类别URL看起来像:

www.example.com/main-category/sub-category-1234/product.html

我在stackoverflow上发现这篇文章很有用:  Magento - Removing numbers in url key/product url

但是我仍然不明白为什么会这样。我发现函数getUnusedPath是导致这些数字发生的原因,看起来它只会在URL的末尾创建这些数字

if ($rewrite && $rewrite->getId()) 
// and $rewrite` is equal to 
$rewrite = $this->getResource()->getRewriteByRequestPath($requestPath, $storeId);

你知道我在哪里可以找到什么

getResource()->getRewriteByRequestPath($requestPath, $storeId);

呢? 为什么我们将这些数字显示在URL的末尾? 我们是否启用了设置? (执行此操作的文件位于

app/code/core/Mage/Catalog/Model/Url.php around `line 640` 

我尝试了所有不同类型的保存产品,看看当你保存它时magento更新了URL,但这不起作用。然后我尝试重新编制url重写索引,这也没有做任何事情。我们有2个magento网站,在我们的第二个magento网站上没有发生这种情况,core_url_rewrite表中没有任何带有数字的网址。为什么它发生在我们的某个网站而不是其他网站?我们如何阻止URLS添加数字?我们如何找出它们的生成原因?

我现在也发现,每次重写url时都会发生这种情况,因为每次重新编制索引时脚本都会运行。我们索引

url_rewrites

每次保存产品。我们为所有产品使用唯一的网址,但我不知道为什么会这样。 我还发现,对于要添加到URL末尾的数字,它必须适合此正则表达式查询

#[0-9a-z/-]+?(-([0-9]+))?('.preg_quote($suffix).')?$#i` 

(有谁知道这意味着什么?我试图查看一个REGEX计算器,但它无法让我理解哪些字符串适合这个?

0 个答案:

没有答案