2022-08-29 10:31:59 - 米境通
opencart是构建了一个轻量级的MVC框架,总体来说思路都是比较清析的.
URL重构这一块,就是分类(category)为例吧.
opencart默认就有URL重写这个功能,你只需要在后台开启这个功能则可,可系统自带的这有一些不足之处,总结有以下几个问题.
1.不能自动生成SEOkeyword
2.SEOkeyword的值不是惟一的.
针对第一个问题,我是这么解决的:
采用其它系统常用的一种方式,就是用产品名自动生成SEOkeyword,一般生成比较友好的URL,通常只包括字母和数字.
这里可以用正则替换就可以了.
可是呢,也不是替换就行了,还一种比较特殊的情况,就是如果产品名全是特殊字符,比如,我加一个中文产品,产品为”脑白金”
而SEOkeyword又为空,这个又怎么实现伪静态呢,这种情况下,自动替换就不行了.
这种情况我是这么处理的,就是假设如果全为特殊字符的话,我就直接生成category-{$category_id}的形式.
第二个问题
怎么理解urlkey的值不是惟一的呢。
比如,我新加一个分类1,然后在Data里面的SEOkeyword里面加入:mycategory
然后,我再建一个分类2,而且同样也在Data里面的SEOkeyword里面加入:mycategory
这样一来,就会出现一个问题,那就是两个URL都一个,你将无法访问分类2.
好了,理论说了一大堆,我们来实际操作.
首先,保存SEOkeyword的数据表是url_alias这个表,我们需要找到程序是在哪一个位置插入数据这个表的.
找到/admin/model/catalog/category.php文件
大概在20-30(添加分类),50-60(修改分类)左右,也就是[php]
if($data[‘keyword’]){
$this->db->query("INSERTINTO".DB_PREFIX."url_aliasSETquery=‘category_id=".(int)$category_id."’,keyword=‘".$this->db->escape($data[‘keyword’])."’");
}[/php]
opencart静态化与OPENCART伪静态的方法,如何去除修改OPENCART底部的版权信息POWEREDBYOPENCART
转静态的方法:
Opencart的转静态是一个比较重要的问题!也是在第一次使用opencart是遇到一个最大的问题!也许我受到zen-cart转静态的影响!所以以为只要把“..htaccess”上传到服务器跟目录下!然后再打开opencart转静态按钮!
可是结果却超出了我想像之外!他是跟打开之前一模一样!也就是还是动态的URL地址,当时我以为那一定是我的那个“.htaccess”出错了!于是我就找我朋友拿了一个“.htaccess”,当然是Opencart使用(不同的网站,转静态用的“.htaccess”是不一样的),可是还是不行!于是我只能把原程序上传到服务器上!然后重新安装一下!结果手动上传产品到网站中!还是一样的!于是我就很无语,按理来说(当然程序很多时候都不能按理来说的),我在安装前就把“.htaccess”空的文件,上传上网站的跟目录下,并且把“.htaccess”设置为777,而且我把“.htaccess”下载下来也是可以使用的,可是就不知道为什么!
于是我又用同样的方法,不过这个时候有开启测试产品!又自己上传了产品!才发现原来测试产品是可以用的!自己上传就不可以用了!于是我说开了数据库看他们的数据有什么差别!在一个表“url_alias”中有数据!而且没劲的产品有!我上传的就没有了!于是就在后以找到那个产品在“url_alias”中的keyword数据才知道原来,Opencart后台产品编辑页面的一个字段“ProductTags:”一样,才知道原来Opencart的作者写的跟别人不一样!其他作品的URL地址都是自动生成的!但是他不一样!他是用自己去填写!而且你爱什么写就什么写!只要你是唯一的就可以!当然也给业务带来一些不便!不过他却可以给URL优化带来很大的帮助!