SEO中国站 | SEO站长社区      SEO中国站专注为企业提供搜索引擎优化(SEO)服务,中国SEO服务诚信高效品牌      关于我们 | 客户服务 | SEO博客 | 加入收藏 | RSS订阅

SEO中国站:提供SEO服务|网站优化,搜索引擎优化(SEO)服务专业平台

SEO中国站专业为中小型企业提供SEO服务搜索引擎优化中国SEO在线诚信服务平台,如需更多咨询和交流,请点击客户服务中心交谈,QQ:176128596!
域名主机 网站安全 网站运营 Discuz Shopex Ecshop Dedecms MagentoZencart Wordpress Z-Blog Access/Mysql PHP编程 ASP/ASP.NET HTML/DIV+CSS 电脑安全
返回首页
当前位置: 首页 > 网站建设 > Zencart >

如何消除Zencart SEO URL中重复的网址或者页面

时间:2012-05-29 17:40来源:SEO中国站 作者:seocnz 点击:
如何消除Zencart SEO URL中重复的网址或者页面,安装了Ultimate SEO URLs,进行了URL伪静态,更改商品分类名称后URL发生了改变, 比如 本来商品分类名称为 DVD Movies 那DVD Movies 的URL为:http://demo.zen-cart.cn/dvd-movies-c-3.html 现在在后台把商品
  
      如何消除Zencart SEO URL中重复的网址或者页面,安装了Ultimate SEO URLs,进行了URL伪静态,更改商品分类名称后URL发生了改变,比如本来商品分类名称为 DVD Movies

那DVD Movies 的URL为:http://demo.zen-cart.cn/dvd-movies-c-3.html
现在在后台把商品分类DVD Movies改为China DVD Movies
那China DVD Movies 的URL为http://demo.zen-cart.cn/china-dvd-movies-c-3.html
要命的是:原来的 http://demo.zen-cart.cn/dvd-movies-c-3.html还可以访问,内容和http://demo.zen-cart.cn/china-dvd-movies-c-3.html的相同,这2个URL指向的其实是同一个页面。

这个SEO模块是有重复网址的问题,实际上不管分类名称输入什么,都是根据后面的分类编号来打开分类页面的,产品页面也会出现这类重复URL。

解决方法:

首先,商店设置-搜索引擎优化-打开自动跳转吗?,设置为 true
然后打开文件 \includes\classes\seo.url.php

找到:$this->attributes['SEO_REDIRECT']['NEED_REDIRECT'] = $this->need_redirect ? 'true' : 'false';

在前面加上:

    // check product name from URL and redirect if not equal to real product name to avoid duplicates
      if ( preg_match('/-p-[0-9]/i', $this->uri) && preg_match('/main_page=product_info/i', $this->real_uri) ) {
         $productname_from_url = preg_replace('/-p-[0-9].*/i','',$this->uri);
         $productid_from_url= preg_replace('/.*-p-([0-9]+)\.html/i','$1',$this->uri);
         if ( $this->get_product_name($productid_from_url) != $productname_from_url ) {
            $this->need_redirect = true;
         // repeating procedure from function check_redirect() but for real_uri
         if ($this->is_attribute_string($this->real_uri)) {
         $parsed_url = parse_url($this->real_uri);
         $this->uri_parsed = parse_url($parsed_url['scheme']);
         $this->uri_parsed['query'] = preg_replace('/products_id=([0-9]+)/', 'products_id=$1:' . $parsed_url['path'], $this->uri_parsed['query']);
      } else {
         $this->uri_parsed = parse_url($this->real_uri);
      }
         }
      } // end of product_info URL redirect

    // check category name from URL and redirect if not equal to real category name to avoid duplicates
      if ( preg_match('/-c-[0-9]/i', $this->uri) && preg_match('/main_page=index/i', $this->real_uri) ) {
         $categoryname_from_url = preg_replace('/-c-[0-9].*/i','',$this->uri);
         $categoryid_from_url= preg_replace('/.*-c-([0-9]+)\.html/i','$1',$this->uri);
         if ( $this->get_category_name($categoryid_from_url) != $categoryname_from_url ) {
            $this->need_redirect = true;
         // repeating procedure from function check_redirect() but for real_uri
         if ($this->is_attribute_string($this->real_uri)) {
         $parsed_url = parse_url($this->real_uri);
         $this->uri_parsed = parse_url($parsed_url['scheme']);
         $this->uri_parsed['query'] = preg_replace('/cPath=([0-9]+)/', 'cPath=$1:' . $parsed_url['path'], $this->uri_parsed['query']);
      } else {
         $this->uri_parsed = parse_url($this->real_uri);
      }
         }
      } // end of category URL redirect

      上面的代码,自动分析请求的URL,如果URL中分类、商品名称与数据库里的不一样,就自动跳转到正确的页面,这样就消除了重复URL。对分类页面和商品页面都有效。
 
 
 

文章出处:www.seocnz.com
SEO中国站专注企业SEO服务SEO优化,网站优化,中国SEO诚信服务品牌。
本文seocnz保留所有,转载请以连接形式注明出处。

      Tags:
------分隔线----------------------------

------分隔线----------------------------
发表评论
请自觉遵守互联网相关政策法规,作者管理后台可以删除恶意评论、广告和违禁词语。。
验证码:点击我更换图片
SEO中国站优化服务官方微薄
推荐内容
SEO服务