如何强制magento使用完整的产品路径?

时间:2010-09-20 22:55:19

标签: seo magento url-rewriting path

我对magento产品链接有疑问。当我搜索产品然后点击产品链接时,Magento会将我重定向到index.php / test666.html,当它应该是index.php / products / grocery / miso-soup / test666.html时。

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

添加了:

我无法通过启用“使用产品网址的类别路径”来实现它。所以我最终得到了以下代码。

$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";

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

5 个答案:

答案 0 :(得分:2)

搜索结果不会为您提供完整的链接,因为Magento允许任何产品分为多个类别。如果您使用搜索框,则无法猜测产品的正确类别。换句话说,产品链接可能包含多个网址。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

您可能需要刷新“目录网址重写”索引。 HTML也可以从缓存中提供,因此刷新它不会有害。

答案 3 :(得分:0)

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

答案 4 :(得分:0)

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

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