opencart 启用 URL 静态化后,产品的 URL 地址会有多个,在 明明就是一个产品,却有多个链接,这对于SEO来说,这么多个地址会平分了权重 ,对搜索引擎优化排名很不利,所以我们需要修改一下,需要修改两个文件。
1、/catalog/controller/product/category.php 通过关键词 $result['product_id'] 找到如下代码:
$data['products'][] = array(
'product_id' => $result['product_id'],
'thumb' => $image,
'name' => $result['name'],
'description' => utf8_substr(strip_tags(html_entity_decode($result['description'], ENT_QUOTES, 'UTF-8')), 0, $this->config->get('config_product_description_length')) . '..',
'price' => $price,
'special' => $special,
'tax' => $tax,
'rating' => $result['rating'],
'href' => $this->url->link('product/product', 'path=' . $this->request->get['path'] . '&product_id=' . $result['product_id'] . $url)
);
把最后一行代码的的 . $this->request->get['path'] 去掉,包括前面的一个“.”连接符,变成这样:
'href' => $this->url->link('product/product', 'path=' . '&product_id=' . $result['product_id'] . $url)
2、/catalog/model/tool/seo_url.php 通过关键词 $query->row['keyword'] 搜索到如下的内容:
if (($data['route'] == 'product/product' && $key == 'product_id') || (($data['route'] == 'product/manufacturer/info' || $data['route'] == 'product/product') && $key == 'manufacturer_id') || ($data['route'] == 'information/information' && $key == 'information_id')) {
$query = $this->db->query("SELECT * FROM " . DB_PREFIX . "url_alias WHERE `query` = '" . $this->db->escape($key . '=' . (int)$value) . "'");
if ($query->num_rows && $query->row['keyword']) {
$url .= '/' . $query->row['keyword'];
unset($data[$key]);
}
} elseif ($key == 'path') {
将中间的 if 语句改成:
if ($query->num_rows && $query->row['keyword']) {
if($key == 'product_id'){
$url = '/' . $query->row['keyword'];
}else{
$url .= '/' . $query->row['keyword'];
}
unset($data[$key]);
}
这样,所有位置的链接就只有一个了:http://127.0.0.1/apple/cinema.html (责任编辑:最模板) |

中英双语全静态生成企业
人气:677
zencart家居响应式网站模板
人气:1790
ecshop仿LVMORE网2014模板
人气:1011
亚洲产品外贸ecshop模板
人气:825
ecshop爱玛模板
人气:571
ecshop免费模板之仿缤购网
人气:4043