你现在的位置:首页 > opencart 正文

OpenCart SEO优化教程

一、产品 ,Infomation , 分类 静态化
1.登录opencart admin panel, 打开 System==>Server 选择Use SEO URL’s: 为 Yes
2.新建一个文件文件名为 .htaccess
内如如下  
 

Options +FollowSymlinks        Options -Indexes        Prevent Direct Access to files        <FilesMatch "\.(tpl|ini|log|txt)">           Order deny,allow           Deny from all        </FilesMatch>         #SEO URL Settings        RewriteEngine On        RewriteBase /opencart/ #这个是文件根目录, 根据你自己的站点而定.        RewriteCond %{REQUEST_FILENAME} !-f        RewriteCond %{REQUEST_FILENAME} !-d        RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]

3.此时你的网店设定已经完成,现在只用添加产品的时候填写SEO Keyword 就可以实现 伪静态了.(请看第四小节)
(SEO的优化 其实不再与后缀名一定是html,只要是不变的就可以了.像下面这个对SEO来讲是没问题的)
4.现在我们点击一下产品例如
Canon EOS 5D

进入后台 Catalog==>roducts==>找到这个产品
编辑它,选择Data项,找到SEO Keyword,输入你想要的 url
例如 eos.html
在这里填写你要的字符串就好了, 可以带一个扩展名,例如html
现在去首页在点击这个产品 URL 变成
http://127.0.0.1/opencart/desktops/eos.html
这样是不是很好看.
产品伪静态到此结束.
二、其他页面伪静态其他页面的伪静态 就需要一些数据库知识了,还有要会修改些代码
需要修改一个文件
/opencart/catalog/controller/common/seo_url.php
一个数据库表,前缀._url_alias 这个表,一下简称url_alias
下面拿主页和会员Account这两个举例如何实现伪静态

主页这个比较简单,假如这样访问首页
http://127.0.0.1/opencart/index.php?route=common/home
注意这个route=common/home
在 url_alias 表中插入一行
Query                 keyword
common=home    index.html
注意对应列,
url_alias有两列,query 真实的地址, keyword 是伪静态的地址, 也可以写成 common/index.html 只要符合 URL规范

插入完成后,需要在 Controller seo_url.php中加入一段代码就可以访问
文件路径/opencart/catalog/controller/common/seo_url.php
在 
 

} else {        $this->request->get['route' = 'error/not_found';}

的上面加入  
 

if ($url[0 == 'common') {        $this->request->get['route' = 'common/'.$url[1;}


此时就可以使用
http://127.0.0.1/opencart/index.html 访问了
Account 的做法跟 Common 一样的道理 例如
http://127.0.0.1/opencart/index.php?route=account/account
那么就在数据库中插入
Query                           keyword
account=account         account.html
/opencart/catalog/controller/common/seo_url.php
要加入判定的代码

if ($url[0 == 'account') {        $this->request->get['route' = 'account/'.$url[1;}


这里需要特别注意,
http://127.0.0.1/opencart/index.php?route=account/account
http://127.0.0.1/opencart/index.php?route=account/edit
http://127.0.0.1/opencart/index.php?route=account/history
这几个地址只用加入一段,因为 他们都是 acoount/ 开头的.

if ($url[0 == 'account') {        $this->request->get['route' = 'account/'.$url[1;}

不是每个都要加入上面的代码
$url[0] == ’account’ 的意思 就是判定 “/” 之前 是否等于 account

account/account
account/edit

好了以上就可完成伪静态,
只要在地址栏中输入 http://127.0.0.1/opencart/加上你 数据库keyword的值就可以访问对应页面了。

由于,页面上很多使用 固定地址,所以我们要去代码中将 地址改掉,
一般的地址都在/opencart/catalog/controller
先看 common 目录下的,我们先修改首页的地址

Home Log Off Account Basket Checkout
这几个地址都在
/opencart/catalog/controller/common/header.php

$this->data['home' = HTTP_SERVER . 'index.php?route=common/home';$this->data['special' = HTTP_SERVER . 'index.php?route=product/special';$this->data['contact' = HTTP_SERVER . 'index.php?route=information/contact';$this->data['sitemap' = HTTP_SERVER . 'index.php?route=information/sitemap';$this->data['account' = HTTPS_SERVER . 'index.php?route=account/account';$this->data['logged' = $this->customer->isLogged();$this->data['login' = HTTPS_SERVER . 'index.php?route=account/login';$this->data['logout' = HTTP_SERVER . 'index.php?route=account/logout';$this->data['cart' = HTTP_SERVER . 'index.php?route=checkout/cart';$this->data['checkout' = HTTPS_SERVER . 'index.php?route=checkout/shipping';


例如 home
我们可以修改成


$this->data['home' = HTTP_SERVER . 'index.html';

我不是很建议把地址直接修改成 index.html,如果日后你又要还原,就麻烦了
我们可以在根目录中的 config.php 中定义
define(‘HOME’, ’index.html’);
在header.php中就可以

$this->data['home' = HTTP_SERVER . HOME;


日后只要的config.php中修改定义,就可以了

define('HOME', 'index.php?route=common/home');