博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
ECSHOP 商品,分类自定义URL
阅读量:4356 次
发布时间:2019-06-07

本文共 1589 字,大约阅读时间需要 5 分钟。

 

作者:konakona

 

转载请著名!

申明,这不是一篇教学文,我没有义务教会每一个人,但我有必要分享我的所懂得的给大家,所以能不能真正看懂,就在你各人的LAMP能力了.

 

因为我不善解释…

我只是提供一个改的思路,大家想改成什么样,只要够灵活都可以实现.

最近客户有一个需求,就是他可以在后台修改商品和分类的URL,大概是 http://www.xx.com/yourcatename.html 这样子.

但这样的结果是:要将请求提取出来后拿到数据哭中LIKE…牺牲的效率太大,不适合B2C网站.

所以我推荐客户一种易于SEO,同时能减轻服务器负担,又提升执行效率的URI.

分类 http://www.xx.com/c-[yourcatename]-id[-bid].html

商品 http://www.xx.com/s-[yourdefinedname]-id.html

 

很明显,我的c-和s-是一个标识符,用于表名他是一个category还是一个shop.

开始改代码.

存客户的URL,首先需要有一个字段.

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注释掉

$tmp = $GLOBALS['db']->getRow("select * from ecs_category where cat_id = $cid");
$cat_url = empty($tmp['cat_url']) ? 'noname' : $tmp['cat_url'];
$uri = 'c-' . $cat_url . '-' . $cid;

 

再在条件为goods的else里的代码全部改成

 

$tmp = $GLOBALS['db']->getRow("select * from ecs_goods where goods_id = $gid");

$url = empty($tmp['goods_url']) ? 'noname' : $tmp['goods_url'];
$uri = $rewrite ? 's-' . $url . '-' . $gid : 'goods.php?id=' . $gid;

在后台清空缓存,大功告成.

你还没有?FUCK!自己去看后台设置.

然后继续下一步,打开跟目录的.htaccess

 

#RewriteRule ^goods-([0-9]+)(.*)\.html$ goods\.php\?id=$1 [QSA,L]

RewriteRule ^s-[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.cnblogs.com/longailili/archive/2012/09/25/2701780.html

你可能感兴趣的文章
关于cocoapods的使用(管理ios开发第三方类库)
查看>>
hdu 1506
查看>>
POJ 2443 Set Operation
查看>>
JavaScript高级程序设计-读书笔记(4)
查看>>
洛谷 1108 低价购买
查看>>
【转】Android的线程和线程池(AsyncTask)
查看>>
centos7 安装php7+mysql5.7+nginx+redis
查看>>
Ubuntu 14.04中文输入法的安装
查看>>
【分享】管理的最高境界是简单
查看>>
年关将至业内警示P2P跑路风险
查看>>
asp.net core刷新css缓存
查看>>
十大数据挖掘算法及各自优势
查看>>
python环境准备
查看>>
Invert (mirror) a bitmap
查看>>
LPC43xx SGPIO I2C Implementation
查看>>
day3-->深浅拷贝
查看>>
Beta 冲刺(1/7)
查看>>
【Python】常用排序算法的python实现和性能分析
查看>>
FCN用卷积层代替FC层原因(转)
查看>>
在Linux系统中,使用useradd命令新建用户后,登录该用户时shell开头为$,不显示用户名和路径,如下:...
查看>>