2010-09-20 68 views
2

我有一个magento产品链接的问题。当我搜索一个产品,然后点击产品链接时,Magento将它重定向到index.php/test666.html,当它应该是index.php/products/grocery/miso-soup/test666.html。如何强制magento使用完整的产品路径?

是否可以强制Magento使用产品的完整路径?

补充:

我不能让它通过启用“使用类别为路径的URL的产品”工作。所以我结束了以下代码。

$categories = $_product->getCategoryIds(); 
$lastCategory = $_categoryModel->load(end($categories)); 

$urlPath = explode("/",$lastCategory->getUrlPath()); 

$urlPathCnt = count($urlPath)-1; 
$urlPath[$urlPathCnt] = str_replace(".html","",$urlPath[$urlPathCnt]); 
$productUrl = "/".implode("/",$urlPath)."/".$_product->getUrlKey().".html"; 

但我真的不喜欢这种方式。它使用不必要的资源。有任何想法吗??

+0

Magento的哪个版本? – 2010-09-20 22:59:54

+0

@Jonathan Day/1.4.1.1 – Moon 2010-09-20 23:01:28

+0

@Moon我必须粘贴此代码..因为我是新的magento 谢谢:) – 2016-03-17 06:04:12

回答

1

在管理,去System>Configuration>Catalog>Search Engine Optimizations并设置Use Categories Path for Product URLs

+0

//它已被设置为'是' – Moon 2010-09-20 23:03:17

+0

我写了一个函数来实现这一点 - https://twitter.com/dbashyal/status/331967007778037762 – 2013-05-08 03:03:54

0

您可能需要刷新“目录URL重新写入”指数。 HTML也可以从缓存中提供,所以刷新它不会造成伤害。

0

另外请确保您使用方法$product->getProductUrl()来利用上述设置。

2

搜索结果不会给你一个完整的链接,因为Magento允许任何产品在多个类别。如果您使用搜索框,则无法猜测产品的正确类别。换句话说,产品链接可能有多个URL。

如果您完全确定每个产品只分配一个类别,则可以更改搜索源代码或创建扩展,以显示每个搜索结果的完整路径链接。

0

我认为搜索结果不会给你一个完整的链接,因为Magento允许任何产品在多个类别。如果您使用搜索框,则无法猜测产品的正确类别。换句话说,产品链接可能有多个URL。

但是,如果您完全确定每个产品只分配一个类别,则可以更改搜索源代码或创建扩展,以显示每个搜索结果的完整路径链接。