全站插件24小时自动发货

ECSHOP分类和商品自定义URL思路

ECSHOP插件网提供一个改的思路,大家想改成什么样,只要够灵活都可以实现。近期客户有一个需求,就是他可以在后台修改分类和商品的URL,大概是 http://www.xx.com/yourcategoryname.html 这样子。但这样的结果是:要将请求提取出来后拿到数据哭中LIKE…牺牲的效率太大,不适合B2C网站。 所以推荐客户一种易于SEO,同时能减轻服务器负担,又提升执行效率的URI。

分类 http://www.xx.com/c-[yourcategoryname]-id[-bid].html
商品 http://www.xx.com/g-[yourgoodsname]-id.html

很明显我的c-和g-是一个标识符,用于表名他是一个category还是一个goods
开始实现改代码,客户的URL,首先需要有一个SQL字段。
ALTER TABLE `ecs_goods` ADD `goods_url` VARCHAR( 20 ) NOT NULL AFTER `goods_name`;
ALTER TABLE `ecs_category` ADD `cat_url` VARCHAR( 20 ) NOT NULL AFTER `cat_name`;
ECSHOP的URI重写function在lib_common.php文件叫build_uri()
当条件为category时,我们在if ($rewrite) {后加入一段代码
                    //$uri = 'category-' . $cid; //切记先将原来的$uri注释掉
                    $ecshopcx = $GLOBALS['db']->getRow("SELECT * FROM ecs_category WHERE cat_id = $cid");
                    $cat_url = empty($ecshopcx['cat_url']) ? 'ecshopcx' : $ecshopcx['cat_url'];
                    $uri = 'c-' . $cat_url . '-' . $cid;
继续再条件为goods的else里的代码全部改成
                $ecshopcx = $GLOBALS['db']->getRow("SELECT * FROM ecs_goods WHERE goods_id = $gid");
                $url = empty($ecshopcx['goods_url']) ? 'ecshopcx' : $ecshopcx['goods_url'];
                $uri = $rewrite ? 'g-' . $url . '-' . $gid : 'goods.php?id=' . $gid;
然后继续下一步,打开跟目录的.htaccess
RewriteRule ^goods-([0-9]+)(.*)\.html$  goods\.php\?id=$1 [QSA,L]
改成如下
RewriteRule ^g-[a-z]+-([0-9]+)(.*)\.html$ goods\.php\?id=$1 [QSA,L]
RewriteRule ^category-([0-9]+)(.*)\.html$                                                                          category\.php\?id=$1  [QSA,L]
改成如下
RewriteRule ^c-[a-z]+-([0-9]+)(.*)\.html$                                                                          category\.php\?id=$1  [QSA,L]
最后在后台清空缓存,大功告成。

本文原创地址:https://www.ecshop.cx/article-725.html
版权所有 © 转载时必须以链接形式注明出处!

觉得本文对您有用,想收藏下来!方法很简单:请点击-〉
我们一直坚持白天工作、晚上熬夜更新资源,付出了巨大的精力和时间,其中的辛酸难以言述。

充值有惊喜 ECSHOP插件网微信客服edait_cn