正如你可能知道,如果你有一个共享URL重点产品,该URL关键还得附加了一个数字:
即
http://www.example.com/main-category/sub-category/product-name-**6260**.html
如何找到的来源 ,6260(这是附加到我的网址#的一个)? 我试过的产品ID,SKU,我无法找到它的源头。 我想问的原因是因为如果我能找到它,我可以创建一个字符串替换功能,冲洗出来的URL之前,我赞同他们对某些产品列表页面。
谢谢。
正如你可能知道,如果你有一个共享URL重点产品,该URL关键还得附加了一个数字:
即
http://www.example.com/main-category/sub-category/product-name-**6260**.html
如何找到的来源 ,6260(这是附加到我的网址#的一个)? 我试过的产品ID,SKU,我无法找到它的源头。 我想问的原因是因为如果我能找到它,我可以创建一个字符串替换功能,冲洗出来的URL之前,我赞同他们对某些产品列表页面。
谢谢。
在我们到达的位置在代码中出现这种情况,被告知你正在进入痛苦的世界。
有没有简单的规则来如何生成这些数字。 还有的地方是店铺ID的情况下,也就是它的简单的产品ID的情况。 有情况下,它既不
即使有,是很常见的不来自从头Magento的网站包含自定义功能,改变了这一
最终,因为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
串拉坯。
我没有什么不知道为什么这个工作,但这个工作对我来说。 最有可能的,因为它使网址中的非唯一。 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键,而且两者都启用了,那么这可能不适合你的工作。
有一个问题! 当您在编辑产品,您可以看到该链接是正确的,但在您的商店的网址是不同的。
矿为279个记录改变该产品。 于是花了大约一个小时。