opencart:主页后和类别后的产品网址

时间:2014-05-28 15:26:11

标签: url seo opencart clean-urls

我使用的是opencart 1.5.6。

主页上的产品(或其他类别的产品)链接到/产品,而当它从类别页面/产品/类别/产品中获取时。

这意味着谷歌认为有重复的内容,我不喜欢这样,所以如何解决这个问题(所以网址是allways / categorie(/ subcat)/ product?

我希望所有其他页面也有一个干净的seo url但是当我安装以下扩展时却没有发生任何事情:

www.opencart.com/index.php?route=extension/extension/info&extension_id=15557&filter_search=seo%20url&filter_license=0&sort=e.downloaded&order=DESC&page=3 www.opencart.com/index.php?route=extension/extension/info&extension_id=15516

网站的网址: http://publiekgeheim.com

2 个答案:

答案 0 :(得分:2)

您不必担心重复的内容。我可以看到您的产品<head>中有“规范”链接标记,所以您没问题。这个标签告诉搜索引擎哪个url是“正确的”,而其他url只是由插件,分类等产生的。所以没有重复的内容。

在opencart中,除非您想编写和制作场景并更改工作流,否则生成规范标记的最佳方法就像现在一样。也就是www.example.com/product。原因是opencart生成诸如http://publiekgeheim.com/lingerie/Esprit/Esprit-Feel-Sexy-String之类的URL,其中包含类别路径,实际上是不可靠的。例如,以下网址http://publiekgeheim.com/stackoverflow/Goerge/wtf/Esprit-Feel-Sexy-String will also lead you to the product page

如果您仍然希望按照自己的方式进行操作,则必须在catalog/product/product.php更改此行:

$this->document->addLink($this->url->link('product/product', 'product_id=' . $this->request->get['product_id']), 'canonical');

这就是疼痛开始的地方。您可以使用getCategories中的catalog/model/catalog/product.php方法获取产品所属的类别。但是你要显示哪一个?如果您只为产品分配一个类别,那么您很幸运。但如果没有?在我的商店中,我甚至经常分配两个基本相同但属于不同父类别的产品,以帮助用户更容易地找到产品(因为opencart不允许将链接(到类别)作为菜单顶部菜单中的项目)。如果我想按照你的方法,我需要使用一些扩展,允许我在顶部菜单中放置链接,但在我的站点地图中创建空的,重复的类别或使用一些完全取代默认顶级菜单的大型菜单。然后会出现新的问题。因此,您会发现根据您的使用情况,它会变得越来越复杂。

即使你设法通过这个(例如选择一个随机或返回的第一个类别,或者从现在开始只将产品分配到一个类别),你将如何找到父类别为了显示网址中的完整路径? opencart和编码中没有这样的方法,这真的很难看,并且会在产品页面上添加至少3个数据库查询(我试图计算需要多少个数据库查询才能生成默认的opencart页面而且我至少计算过10)。

总而言之,除非你对如何上传和展示产品以及一些聪明的代码提出严格的政策,否则避免让棘手的情况坚持默认规范。

这些扩展应该有效。检查您的vqmod错误和兼容性。

答案 1 :(得分:0)

我已经和这个问题坐了好几天了,终于弄明白了。 1.5.6.4 从HOME和相关产品链接时的类别/产品而不是/产品。

<强> 1。在/catalog/controller/module/showintabs.php

<强> AFTER:

if ($this->config->get('config_review_status')) {
                $rating = $result['rating'];
            } else {
                $rating = false;
            }

添加

$categories = $this->model_catalog_product->getCategories($result['product_id']);
            if(isset($categories[0]) && !empty($categories[0])){
                $path = $categories[0]['category_id'];
            }else{
                $path = '';
            }

AND $ products [] =数组正下方

更改:     &#39; HREF&#39; =&GT; $ this-&gt; url-&gt;链接(&#39;产品/产品&#39;,&#39; product_id =&#39;。$ result [&#39; product_id&#39;]),

    &#39; HREF&#39; =&GT; $ this-&gt; url-&gt;链接(&#39;产品/产品&#39;,&#39;路径=&#39;。$ path。&#39;&amp; product_id =&#39;。$结果[&#39; PRODUCT_ID&#39;]),

<强> 2。在/catalog/controller/product/product.php

<强> AFTER     if($ this-&gt; config-&gt; get(&#39; config_review_status&#39;)){                     $ rating =(int)$ result [&#39; rating&#39;];                 } else {                     $ rating = false;                 }

添加     $ categories = $ this-&gt; model_catalog_product-&gt; getCategories($ result [&#39; product_id&#39;]);                 if(isset($ categories [0])&amp;&amp;!empty($ categories [0])){                     $ path = $ categories [0] [&#39; category_id&#39;];                 }其他{                     $ path =&#39;&#39 ;;                 }

和$ this-&gt;数据[&#39;产品&#39;] [] =数组(正下方

更改:     &#39; HREF&#39; =&GT; $ this-&gt; url-&gt;链接(&#39;产品/产品&#39;,&#39; product_id =&#39;。$ result [&#39; product_id&#39;]),

    &#39; HREF&#39; =&GT; $ this-&gt; url-&gt;链接(&#39;产品/产品&#39;,&#39;路径=&#39;。$ path。&#39;&amp; product_id =&#39;。$结果[&#39; PRODUCT_ID&#39;]),