Magento的 - 删除URL中的关键数字/产品链接(Magento - Removing num

2019-07-04 05:38发布

正如你可能知道,如果你有一个共享URL重点产品,该URL关键还得附加了一个数字:

http://www.example.com/main-category/sub-category/product-name-**6260**.html

如何找到的来源 ,6260(这是附加到我的网址#的一个)? 我试过的产品ID,SKU,我无法找到它的源头。 我想问的原因是因为如果我能找到它,我可以创建一个字符串替换功能,冲洗出来的URL之前,我赞同他们对某些产品列表页面。

谢谢。

Answer 1:

在我们到达的位置在代码中出现这种情况,被告知你正在进入痛苦的世界。

  1. 有没有简单的规则来如何生成这些数字。 还有的地方是店铺ID的情况下,也就是它的简单的产品ID的情况。 有情况下,它既不

  2. 即使有,是很常见的不来自从头Magento的网站包含自定义功能,改变了这一

  3. 最终,因为Magento的人类可读/ SEO友好的URL位于core_url_rewrite表,有可能为人们提供了插入任意文本

厄运的警告放在一边,你要找的型号是Mage::getSingleton('catalog/url') 这包含了大部分的逻辑产生的Magento目录和产品重写。 所有这些方法通过使请求路径通过端getUnusedPath方法。

#File: app/code/core/Mage/Catalog/Model/Url.php
public function getUnusedPath($storeId, $requestPath, $idPath)
{
    //...
}

该方法包含用于在URL的末尾产生一个唯一的数字逻辑。 在其完全跟踪这已经超出了一个堆栈溢出后的范围,但此行特别是启发/沮丧。

$lastRequestPath = $this->getResource()
    ->getLastUsedRewriteRequestIncrement($match[1], $match[4], $storeId);
if ($lastRequestPath) {
    $match[3] = $lastRequestPath;
}
return $match[1]
    . (isset($match[3]) ? ($match[3]+1) : '1')
    . $match[4];

特别是,这两条线

$match[3] = $lastRequestPath;
//...
. (isset($match[3]) ? ($match[3]+1) : '1')
//...

如果不是很明显,存在这样的情况的Magento会自动添加一个1到URL,然后继续递增它。 这使得这些URL的生成依赖于系统状态产生,当他们 - 有没有简单的规则。

在这个文件感兴趣的其他线

if (strpos($idPath, 'product') !== false) {
    $suffix = $this->getProductUrlSuffix($storeId);
} else {
    $suffix = $this->getCategoryUrlSuffix($storeId);
}    

$suffix将在URL的末尾可以作为很好,所以这些方法都值得研究。

如果你正在试图做的一切都是从URL删除号码,你可能会用正则表达式更好或者一些explode / implode串拉坯。



Answer 2:

我没有什么不知道为什么这个工作,但这个工作对我来说。 最有可能的,因为它使网址中的非唯一。 Magento的版本。 1.7.0.2突然开始增加数字作为后缀,以我的新产品的名字,即使他们的网址键和名字是从老产品不同。 在一种预感,我去System -> Configuration -> Catalog -> Search Engine Optimizations -> Product URL Suffix ,并改变了默认.html-prod.html 。 我想你可以将其更改为你想要的任何后缀。 然后我重新收录我的网站,刷新缓存,和急! 所有的数字是从产品的网址了。 现在的产品网址都有格式custom-product-name-prod.html 。 该规范的标签也显示了custom-product-name-prod.html所以我快乐加倍。

不知道这是否会为别人打工,但我希望它。 请注意,我确实有新老产品重复的URL和我有做此过程之前禁用老产品。 所以,如果你有2个产品具有相同的URL键,而且两者都启用了,那么这可能不适合你的工作。



Answer 3:

有一个问题! 当您在编辑产品,您可以看到该链接是正确的,但在您的商店的网址是不同的。

  • 第1步:修改网址,并添加SS到自定义网址的结尾。 按保存。 \产品namess.html
  • 第2步:进入目录 - > URL重写
  • 第3步:缩小条件,只包括问题情境。 新闻搜索。
  • 第4步:下载吊臂位鼠标记录器/宏录制。 它的自由我付出。
  • 第5步:编辑第一个重写。 按Delete键和OK。
  • 第6步:按下JitBit记录。 编辑第一次重写。 删除。 好。 按停止。
  • 步骤7:旁边的下拉播放选择X倍。 写入记录的数目。 按OK。
  • 第8步:收看节目删除所有记录了你。
  • 第9步:目录 - >管理产品。 从自定义URL的末尾删除SS。 不检查创建重定向。 固定。

矿为279个记录改变该产品。 于是花了大约一个小时。



文章来源: Magento - Removing numbers in url key/product url