opencart静态化与OPENCART伪静态的方法

6,729次阅读
没有评论

共计 3006 个字符,预计需要花费 8 分钟才能阅读完成。

今天分析了一下opencart的URL链接,总结一些小经验.
opencart是构建了一个轻量级的MVC框架,总体来说思路都是比较清析的.
URL重构这一块,就是分类(category)为例吧.
opencart默认就有URL重写这个功能,你只需要在后台开启这个功能则可,可系统自带的这有一些不足之处,总结有以下几个问题.
1.不能自动生成SEO keyword
2.SEO keyword的值不是惟一的.

针对第一个问题,我是这么解决的:
采用其它系统常用的一种方式,就是用产品名自动生成SEO keyword,一般生成比较友好的URL,通常只包括字母和数字.
这里可以用正则替换就可以了.
可是呢,也不是替换就行了,还一种比较特殊的情况,就是如果产品名全是特殊字符,比如,我加一个中文产品,产品为”脑白金”
而SEO keyword又为空,这个又怎么实现伪静态呢,这种情况下,自动替换就不行了.
这种情况我是这么处理的,就是假设如果全为特殊字符的话,我就直接生成category-{$category_id}的形式.

第二个问题
怎么理解urlkey的值不是惟一的呢。
比如,我新加一个分类1,然后在Data里面的SEO keyword里面加入:mycategory
然后,我再建一个分类2,而且同样也在Data里面的SEO keyword里面加入:mycategory
这样一来,就会出现一个问题,那就是两个URL都一个,你将无法访问分类2.

好了,理论说了一大堆,我们来实际操作.
首先,保存SEO keyword的数据表是url_alias这个表,我们需要找到程序是在哪一个位置插入数据这个表的.
找到/admin/model/catalog/category.php文件

大概在20-30(添加分类),50-60(修改分类)左右,也就是[php]
if ($data[‘keyword’]) {
$this->db->query("INSERT INTO " . DB_PREFIX . "url_alias SET query = ‘category_id=" . (int)$category_id . "’, keyword = ‘" . $this->db->escape($data[‘keyword’]) . "’");
}[/php]

opencart静态化与OPENCART伪静态的方法,如何去除修改OPENCART底部的版权信息POWERED BY OPENCART

转静态的方法:

Opencart的转静态是一个比较重要的问题!也是在第一次使用opencart是遇到一个最大的问题!也许我受到zen-cart转静态的影响!所以以为只要把“..htaccess”上传到服务器跟目录下!然后再打开opencart转静态按钮!

可是结果却超出了我想像之外!他是跟打开之前一模一样!也就是还是动态的URL地址,当时我以为那一定是我的那个“.htaccess”出错了!于是我就 找我朋友拿了一个“.htaccess”,当然是Opencart使用(不同的网站,转静态用的“.htaccess”是不一样的),可是还是不行!于是 我只能把原程序上传到服务器上!然后重新安装一下!结果手动上传产品到网站中!还是一样的!于是我就很无语,按理来说(当然程序很多时候都不能按理来说 的),我在安装前就把“.htaccess”空的文件,上传上网站的跟目录下,并且把“.htaccess”设置为777,而且我把 “.htaccess”下载下来也是可以使用的,可是就不知道为什么!

于是我又用同样的方法,不过这个时候有开启测试产品!又自己上传了产品!才发现原来测试产品是可以用的!自己上传就不可以用了!于是我说开了数据库看他们 的数据有什么差别!在一个表“url_alias”中有数据!而且没劲的产品有!我上传的就没有了!于是就在后以找到那个产品在“url_alias”中 的keyword数据才知道原来,Opencart后台产品编辑页面的一个字段 “Product Tags:”一样,才知道原来Opencart的作者写的跟别人不一样!其他作品的URL地址都是自动生成的!但是他不一样!他是用自己去填写!而且你爱 什么写就什么写!只要你是唯一的就可以!当然也给业务带来一些不便!不过他却可以给URL优化带来很大的帮助!

这个就实现了Opencart 转静态,当然这样做有点儿麻黄!我在自己做的Opencart 批量上传中就把那个URL地址直接用产品的名字代替!把空格变成中划线!这样大家就不要为个URL而烦恼了!当然在我写的PHP批量上传中没有提到!有时 间我会写一个《Opencart 批量上传》再认真的说一下!

这是opencart “.htaccess”的内容:[php]

# 1.To use URL Alias you need to be running apache with mod_rewrite enabled.

# 2. In your opencart directory rename htaccess.txt to .htaccess.

# For any support issues please visit: http://www.opencart.com

RewriteEngine On

RewriteCond %{HTTP_HOST} !^cheap-shoes-wholesale.com$ [NC]

RewriteRule ^(.*)$ http://cheap-shoes-wholesale.com/$1 [L,R=301]

Options +FollowSymlinks

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^(.*)?*$ index.php?_route_=$1 [L,QSA] RewriteEngine

===========================================================[/php]

伪静态的方法:

我们需要在这个判断前对$data[‘keyword’]进行验证,验证它是否为空,因为只有不为空的情况下,
我们重构这个分类的URL才有意义.
这if ($data[‘keyword’]) {前面添加以下代码
[php]
…Oter code…
if(!$data[‘keyword’]){
//生成友好的只带数字和字母的URL
$keywordUrl = preg_replace("/[^-0-9a-zA-Z]+/","",str_replace(‘ ‘,’-‘,$this->db->escape($value[‘name’])));
//如果产品名为特殊字符,则改成category-{$category_id}的形式.同时给自动生成的SEO keywork加上标识ID
$data[‘keyword’] = strlen($keywordUrl)>0?$keywordUrl.’-‘.$category_id:’category’.’-‘.$category_id;
}
if ($data[‘keyword’]) {
…Oter code…
[/php]

根据同样的方法可以修改产品的SEO keyword
修改文件/admin/model/catalog/product.php文件
则可,方法一样,在此不重叙。

正文完
 0
评论(没有评论)

空瓶子部落

文章搜索
推荐阅读
查理·芒格:什么是解决问题的能力(深度好文)

查理·芒格:什么是解决问题的能力(深度好文)

解决问题的能力,就像是穿透表象的「思维手术刀」。 一、真正的解决问题,不是「硬碰硬」,而是「绕过陷阱」 查理·...
史上最全面注塑缺陷大汇总(最新版详解)

史上最全面注塑缺陷大汇总(最新版详解)

  以上就是本篇全部内容了,希望对在看的你有所帮助。
质量意识的五个陷阱

质量意识的五个陷阱

量意识的五大个陷阱:差不多就可以,零缺陷不可能,这不关我的事,双重标准,以前是也这样: 差不多就可以 表现及危...
16个方法打造沟通力

16个方法打造沟通力

作为质量人,既然管理质量工作的,就免不了要与各种人打交道,通常打交道的包括我们同事、上司、供应商、客户等;那么...
SPC基础及应用 (附:PPT课件)

SPC基础及应用 (附:PPT课件)

统计过程控制(SPC)是一种借助数理统计方法的过程控制工具,广泛应用于制造业和服务业中,以保证产品或服务质量,...
最新文章
群晖 Let’s Encrypt 泛域名证书自动更新

群晖 Let’s Encrypt 泛域名证书自动更新

目前acme协议版本更新,开始支持泛域名(wildcard),也就是说,可以申请一个类似*.domain.co...
可以卸载TV Box 了,这款支持「绅士模式」的影视神器你值得拥有

可以卸载TV Box 了,这款支持「绅士模式」的影视神器你值得拥有

还在为找优秀片源难、广告多、平台会员太贵而烦恼?今天给大家挖到一款真正的影视宝藏工具——小猫影视! 作为开源免...
【收藏】一次性解决TV点播/直播自由

【收藏】一次性解决TV点播/直播自由

很多时候,资源就在面前,但是我们视而不见,因为长久的安逸,已经让人失去动手的兴趣。但是每次我需要挨个切换APP...
OpenWrt 存储空间扩容的两种方案

OpenWrt 存储空间扩容的两种方案

说明:当我们通过群晖 VMM 虚拟机安装 Open­Wrt 时,默认会分配一个 10GB 的存储空间,而实际情...
OpenWrt修改IP地址两种方法(直接命令修改跟后台修改)

OpenWrt修改IP地址两种方法(直接命令修改跟后台修改)

OpenWrt是什么?OpenWrt一般常见于无线路由器(软路由)第三方固件,它是一个高效、可靠、功能多的路由...
热门文章
提高过程能力指数(CP/CPK)的途径

提高过程能力指数(CP/CPK)的途径

编者按:过程能力指数(CP/CPK)想必各位质量人都耳熟能详、运用自如,质量工程师之家前期也共享过数篇关于过程...
SPC控制图的八种模式分析

SPC控制图的八种模式分析

SPC控制图有八种模式,即八种判断异常的检验准则,每一种检验准则代表一种异常现象,应用SPC控制图进行过程评估...
测量高手放大招:圆跳动测量技巧总结

测量高手放大招:圆跳动测量技巧总结

01. 前言 在五金机加工厂实际的测量工作中,经常碰到要求测量两个要素的圆跳动问题, 利用不同的测量辅件及夹具...
过程能力分析(CP&cpk)

过程能力分析(CP&cpk)

引入过程能力分析的目的? 在我们现有的管理过程中,我们经常会遇到有些具体指标总是不尽人意,存在许多需要改进的地...
新能源汽车 “两会”精神宣贯会

新能源汽车 “两会”精神宣贯会

此次和大家分享新能源汽车相关政策: [embeddoc url=”https://www.ctro...
最新评论
多乐士 多乐士 通过摸索发现ssh拉取会报错,直接网页访问下载会报404错误,不知道原因;但是可以通过群晖CM注册表访问下载,其方法如下: Container Manager-注册表-设置-新增-注册表名称随便写,注册表URL填你的加速地址,勾选信任的SSL自我签署证书,登录信息不填-应用-使用你的地址,这是注册表会显示了,在搜索栏中输入映像名称,搜索结果在每一页的最后一个,你需要划到最后一个进行下载,实测可正常下载安装。 以上供网友参考。
多乐士 多乐士 还有一个比较简单的方法,只是需要一些外部工具。 1、讲损毁硬盘取出,装入外部移动硬盘 2、打开Diskgenius,定位到硬盘 3、格式化系统分区 4、重新插入硬盘 5、存储池->修复存储池即可
多乐士 多乐士 写的不错的文章
辞了老衲 辞了老衲 这个确实有帮助。
渋驀 渋驀 当然任何时候都可以用curl命令和crontab来实现动态更新DDNS的ip地址: 1、安装crontab之后为root用户创建文件/var/spool/cron/root 2、创建并配置ddnsupdate.sh,放到/usr/bin/文件下,文件内容(以he.net为例): Autodetect my IPv4/IPv6 address: IPV4:curl -4 "http://dyn.example.com:password@dyn.dns.he.net/nic/update?hostname=dyn.example.com" IPV6:curl -6 "http://dyn.example.com:password@dyn.dns.he.net/nic/update?hostname=dyn.example.com" 3、添加执行权限chomod +x /usr/bin/ddnsupdate.sh 4、编辑root用户的crontab:*/10 * * * * /usr/binddnsupdate.sh,每10分钟执行一次。好了,可以享受你的DDNS了
21410 21410 请问下载链接在那里?
madkylin madkylin 不错,不错,谢谢分享了,好东西啊 :lol:
feilung feilung 求方法
zengsuyi zengsuyi 应该挺不错的
zise zise 看看是怎么操作的。。 :oops: