1、徹底自定義頁面titile,徹底拋棄Ecshop定義的頁面title格式:[產品名稱]_[分類名]_[網店名稱]-Powered by ECShopphp
一、分析:你們都知道,titile,kewords,description在SEO中的基礎性和重要性,可是ECshop官方給出的titile實現方法會出現不少相似或相同的頁面title,另外還有部分頁面沒法自定義kewords和 description。在此本人給出了徹底自定義的方法,其實方法很簡單的,只要稍微懂得一點點代碼的都會。html
二、修改包括:品牌頁,商品頁,商品分類頁,文章頁,文章分類頁sql
三、修改涉及的頁面: 品牌頁(增長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.htmurl
四、具體修改:如今就拿品牌頁的修改來舉例:htm
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 ,這個文件是前臺控制文件
·9三、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)徹底相同,想怎麼改徹底由你本身決定。
2、修改餘下的頁面title格式
一、分析:Ecshop每一個頁面都包含了商店標題,不利於SE,也不夠個性化,前面已將重要的頁面修改爲有利於SE的,剩下的能夠改你本身喜歡的格式,好比:首頁格式:商店標題_商店名稱;商品名稱_分類名稱_商店名
二、修改文件includes\lib_main.php
三、具體修改:
·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;
3、404優化,衆所周知,404出錯處理不當對搜索引擎收錄的影響是很是大的,ecshop在這方面作得很是的差,甚至致使了不少的站不被搜索引擎收錄。
一、分析:ECSHOP程序文件category.php及goods.php等頁面多處存在如下這樣的代碼:ecs_header("Location: ./\n");exit;以上代碼的意思是,若是找不到當前ID下的分類或者商品,則跳轉到網站首頁。這樣子跳轉,返回的HTTP代碼將會是302,代表此頁面信息暫時性轉移,這類跳轉代碼很容易引發搜索引擎封殺,所以咱們須要做出404的優化。
二、修改涉及的文件:article.php,article_cat.php,brand.php,category.php,comment.php,goods.php,topic.php
三、修改方法:將以上7個文件中的 ecs_header("Location: ./\n"); 所有改成 ecs_header("HTTP/1.0 404 Not Found"); $smarty->display('404_error.html');
同時在模板文件中加入404_error.html文件