我对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";
但我真的不喜欢这种方式。它使用不必要的资源。任何想法??
答案 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允许任何产品分为多个类别。如果您使用搜索框,则无法猜测产品的正确类别。换句话说,产品链接可能包含多个网址。
但是,如果您完全确定每个产品只分配一个类别,则可以更改搜索源代码或制作扩展名,以显示每个搜索结果的完整路径链接。