標籤:des http io os ar 檔案 資料 art sp
一、完全自訂頁面titile,完全拋棄Ecshop定義的頁面title格式:[產品名稱]_[分類名]_[網店名稱]-Powered by ECShop
1、分析:大家都知道,titile,kewords,description在SEO中的基礎性和重要性,但是ECshop官方給出的titile實現方法會出現很多類似或相同的頁面title,另外還有部分頁面無法自訂kewords和 description。在此本人給出了完全自訂的方法,其實方法很簡單的,只要稍微懂得一點點代碼的都會。
2、修改包括:品牌頁,商品頁,商品分類頁,文章頁,文章分類頁
3、修改涉及的頁面: 品牌頁(增加title,keywords和description):brand.php、admin\brand.php、 admin\templates\brand_info.htm
商品頁(增加title):goods.php、admin\goods.php、 admin\templates\goods_info.htm
商品分類頁(增加title):category.php、admin\category.php、 admin\templates\category_info.htm
文章頁面(增加title):article.php、admin\article.php、 admin\templates\article_info.htm
文章分類頁(增加title):article_cat.php、admin\articlecat.php、 admin\templates\articlecat_info.htm
4、具體修改:現在就拿品牌頁的修改來舉例:
1) 首先是修改資料庫,未安裝的在資料庫結構檔案install\data\structure.sql中改,已安裝的手動在安裝後的資料庫中改,對brand表增加brand_title、brand_keywords和brand_description等欄位
2) 接著修改admin\brand.php,這個檔案是管理員後台檔案
·88行:
$sql = "INSERT INTO ".$ecs->table(‘brand‘)."(brand_name, site_url, brand_desc, brand_logo, is_show, sort_order) "."VALUES (‘$_POST[brand_name]‘, ‘$site_url‘, ‘$_POST[brand_desc]‘, ‘$img_name‘, ‘$is_show‘, ‘$_POST[sort_order]‘)";
$db->query($sql);
改為:
$sql = "INSERT INTO ".$ecs->table(‘brand‘)."(brand_name, site_url, brand_desc, brand_title, brand_keywords, brand_description,brand_logo, is_show, sort_order) "."VALUES (‘$_POST[brand_name]‘, ‘$site_url‘, ‘$_POST[brand_desc]‘, ‘$_POST[brand_title]‘, ‘$_POST[brand_keywords]‘, ‘$_POST[brand_description]‘, ‘$img_name‘, ‘$is_show‘, ‘$_POST[sort_order]‘)";
$db->query($sql);
·113行
admin_priv(‘brand_manage‘);
$sql = "SELECT brand_id, brand_name, site_url, brand_logo, brand_desc, brand_logo, is_show, sort_order "."FROM " .$ecs->table(‘brand‘). " WHERE brand_id=‘$_REQUEST[id]‘";
$brand = $db->GetRow($sql);
改為:
admin_priv(‘brand_manage‘);
$sql = "SELECT brand_id, brand_name, site_url, brand_logo, brand_desc,brand_title, brand_keywords, brand_description,brand_logo, is_show, sort_order "."FROM " .$ecs->table(‘brand‘). " WHERE brand_id=‘$_REQUEST[id]‘";
$brand = $db->GetRow($sql);
·151行
$img_name = basename($image->upload_image($_FILES[‘brand_logo‘],‘brandlogo‘));
$param = "brand_name = ‘$_POST[brand_name]‘, site_url=‘$site_url‘, brand_desc=‘$_POST[brand_desc]‘, is_show=‘$is_show‘, sort_order=‘$_POST[sort_order]‘ ";
改為:
$img_name = basename($image->upload_image($_FILES[‘brand_logo‘],‘brandlogo‘));
$param = "brand_name = ‘$_POST[brand_name]‘, site_url=‘$site_url‘, brand_desc=‘$_POST[brand_desc]‘,brand_title=‘$_POST[brand_title]‘, brand_keywords=‘$_POST[brand_keywords]‘, brand_description=‘$_POST[brand_description]‘,is_show=‘$is_show‘, sort_order=‘$_POST[sort_order]‘ ";
3)緊接著修改admin\templates\brand_info.htm
·在第31行插入:
<tr>
<td class="label">頁面標題</td>
<td><input type="text" name="brand_title" maxlength="120" value="{$brand.brand_title|escape}" /></td>
</tr>
<tr>
<td class="label">頁面關鍵詞</td>
<td><input type="text" name="brand_keywords" maxlength="120" value="{$brand.brand_keywords|escape}" /></td>
</tr>
<tr>
<td class="label">頁面描述</td>
<td><textarea name="brand_description" cols="60" rows="4" >{$brand.brand_description}</textarea></td>
</tr>
4) 最後修改brand.php ,這個檔案是前台控制檔案
·93、94行
$smarty->assign(‘keywords‘, htmlspecialchars($brand_info[‘brand_desc‘]));
$smarty->assign(‘description‘, htmlspecialchars($brand_info[‘brand_desc‘]));
改為:
$smarty->assign(‘page_title‘, htmlspecialchars($brand_info[‘brand_title‘]));
$smarty->assign(‘keywords‘, htmlspecialchars($brand_info[‘brand_keywords‘]));
$smarty->assign(‘description‘, htmlspecialchars($brand_info[‘brand_description‘]));
就這樣,品牌頁的title,keywords和description全部實現了自訂,商品頁、商品分類頁、文章頁、文章分類頁都只需要增加title,修改方法與品牌頁(brand)完全相同,想怎麼改完全由你自己決定。
二、修改餘下的頁面title格式
1、分析:Ecshop每個頁面都包含了商店標題,不利於SE,也不夠個人化,前面已將重要的頁面修改成有利於SE的,剩下的可以改你自己喜歡的格式,比如:首頁格式:商店標題_商店名稱;商品名稱_分類名稱_商店名
2、修改檔案includes\lib_main.php
3、具體修改:
·142行
$page_title = $GLOBALS[‘_CFG‘][‘shop_title‘] . ‘ - ‘ . ‘Powered by ECShop‘;
改為:
$page_title = $GLOBALS[‘_CFG‘][‘shop_name‘];
·在241行插入:
if ($filename == ‘index‘)
$page_title=$GLOBALS[‘_CFG‘][‘shop_title‘] . ‘_‘ . $page_title;
三、404最佳化,眾所周知,404出錯處理不當對搜尋引擎收錄的影響是非常大的,ecshop在這方面做得非常的差,甚至導致了很多的站不被搜尋引擎收錄。
1、分析:ECSHOP程式檔案category.php及goods.php等頁面多處存在以下這樣的代碼:ecs_header("Location: ./\n");exit;以上代碼的意思是,如果找不到當前ID下的分類或者商品,則跳轉到網站首頁。這樣子跳轉,返回的HTTP代碼將會是302,表明此頁面資訊暫時性轉移,這類跳轉代碼很容易引起搜尋引擎封殺,因此我們需要作出404的最佳化。
2、修改涉及的檔案:article.php,article_cat.php,brand.php,category.php,comment.php,goods.php,topic.php
3、修改方法:將以上7個檔案中的 ecs_header("Location: ./\n"); 全部改為 ecs_header("HTTP/1.0 404 Not Found"); $smarty->display(‘404_error.html‘);
同時在模板檔案中加入404_error.html檔案
ECSHOP程式SEO完全最佳化