2022-08-29 10:31:59 - 米境通
opencart是構(gòu)建了一個輕量級的MVC框架,總體來說思路都是比較清析的.
URL重構(gòu)這一塊,就是分類(category)為例吧.
opencart默認(rèn)就有URL重寫這個功能,你只需要在后臺開啟這個功能則可,可系統(tǒng)自帶的這有一些不足之處,總結(jié)有以下幾個問題.
1.不能自動生成SEOkeyword
2.SEOkeyword的值不是惟一的.
針對第一個問題,我是這么解決的:
采用其它系統(tǒng)常用的一種方式,就是用產(chǎn)品名自動生成SEOkeyword,一般生成比較友好的URL,通常只包括字母和數(shù)字.
這里可以用正則替換就可以了.
可是呢,也不是替換就行了,還一種比較特殊的情況,就是如果產(chǎn)品名全是特殊字符,比如,我加一個中文產(chǎn)品,產(chǎn)品為”腦白金”
而SEOkeyword又為空,這個又怎么實(shí)現(xiàn)偽靜態(tài)呢,這種情況下,自動替換就不行了.
這種情況我是這么處理的,就是假設(shè)如果全為特殊字符的話,我就直接生成category-{$category_id}的形式.
第二個問題
怎么理解urlkey的值不是惟一的呢。
比如,我新加一個分類1,然后在Data里面的SEOkeyword里面加入:mycategory
然后,我再建一個分類2,而且同樣也在Data里面的SEOkeyword里面加入:mycategory
這樣一來,就會出現(xiàn)一個問題,那就是兩個URL都一個,你將無法訪問分類2.
好了,理論說了一大堆,我們來實(shí)際操作.
首先,保存SEOkeyword的數(shù)據(jù)表是url_alias這個表,我們需要找到程序是在哪一個位置插入數(shù)據(jù)這個表的.
找到/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靜態(tài)化與OPENCART偽靜態(tài)的方法,如何去除修改OPENCART底部的版權(quán)信息POWEREDBYOPENCART
轉(zhuǎn)靜態(tài)的方法:
Opencart的轉(zhuǎn)靜態(tài)是一個比較重要的問題!也是在第一次使用opencart是遇到一個最大的問題!也許我受到zen-cart轉(zhuǎn)靜態(tài)的影響!所以以為只要把“..htaccess”上傳到服務(wù)器跟目錄下!然后再打開opencart轉(zhuǎn)靜態(tài)按鈕!
可是結(jié)果卻超出了我想像之外!他是跟打開之前一模一樣!也就是還是動態(tài)的URL地址,當(dāng)時我以為那一定是我的那個“.htaccess”出錯了!于是我就找我朋友拿了一個“.htaccess”,當(dāng)然是Opencart使用(不同的網(wǎng)站,轉(zhuǎn)靜態(tài)用的“.htaccess”是不一樣的),可是還是不行!于是我只能把原程序上傳到服務(wù)器上!然后重新安裝一下!結(jié)果手動上傳產(chǎn)品到網(wǎng)站中!還是一樣的!于是我就很無語,按理來說(當(dāng)然程序很多時候都不能按理來說的),我在安裝前就把“.htaccess”空的文件,上傳上網(wǎng)站的跟目錄下,并且把“.htaccess”設(shè)置為777,而且我把“.htaccess”下載下來也是可以使用的,可是就不知道為什么!
于是我又用同樣的方法,不過這個時候有開啟測試產(chǎn)品!又自己上傳了產(chǎn)品!才發(fā)現(xiàn)原來測試產(chǎn)品是可以用的!自己上傳就不可以用了!于是我說開了數(shù)據(jù)庫看他們的數(shù)據(jù)有什么差別!在一個表“url_alias”中有數(shù)據(jù)!而且沒勁的產(chǎn)品有!我上傳的就沒有了!于是就在后以找到那個產(chǎn)品在“url_alias”中的keyword數(shù)據(jù)才知道原來,Opencart后臺產(chǎn)品編輯頁面的一個字段“ProductTags:”一樣,才知道原來Opencart的作者寫的跟別人不一樣!其他作品的URL地址都是自動生成的!但是他不一樣!他是用自己去填寫!而且你愛什么寫就什么寫!只要你是唯一的就可以!當(dāng)然也給業(yè)務(wù)帶來一些不便!不過他卻可以給URL優(yōu)化帶來很大的幫助!