ECMall 2.0 伪静态功能,包括修改和Rewrite规则文件(免费提供)

2016-07-07 16:47 来源:www.chinab4c.com 作者:ecshop专家

【注意】本伪静态实现方式对ECMall程序的实质性修改只有模板引擎template.php文件,而且对原有文件的修改仅仅是在2处各增加了1行代码(其功能封装在该文件尾部)。所以各位可以放心使用,升级十分方便。如果以后官方推出伪静态功能,你改用官方的也是十分方便。当然,你完全没必要再改用。
提醒:启用伪静态功能会略微增加服务器的负担,这意味着网页加载速度会受到影响,虽然一般你感觉不出来。

第一步:修改文件

修改两个模板文件以改善程序性能,更好地配合伪静态的表现:

themes/mall/default/header.html 在<head>下面增加一行<base href...,因为我改善了Js的质量

<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<base href="{$site_url}/" />

themes/mall/default/search.store.html在下面Javascript代码片段增加一句代码:return false;

switch (order){
case 'credit_value desc' : order = '';
arrow = '{$lang.down_arrow}';
break;
default : order = 'credit_value desc';
}
$('#credit_grade').html('{$lang.credit_grade}' + arrow);
$('#credit_grade').click(function(){query('order', order);return false;});

注意:伪静态功能并未通过修改全部的模板文件来实现!以上修改只是为了改进原来的官方代码。如果你使用的不是默认模板、而模板又不规范的话,可能会功能异常。对这种情况,一般不予讨论。

第二步:下载并替换2个程序文件

附件中有两个文件需要按照路径替换原文件(建议先备份):
includes/libraries/javascript/search_goods.js一个Js文件,不分编码,改良代码,兼容原有全部功能,不冲突。即使你不做伪静态,也强烈建议你使用本文件替换原有文件!
eccore/view/template.phpECMall模板引擎 gbk版伪静态功能是通过改进模板引擎实现的
eccore/view/template(utf8).php模板引擎 utf8版

第三步:配置伪静态规则
下载的附件中,根目录有4个用于不同系统环境的规则文件。
附件中规则文件说明:
1) .htaccessApache下目录级别伪静态规则
2) httpd.conf 独立主机Apache下conf/httpd.conf配置伪静态规则
3) httpd.iniWindows独立主机IIS下ISAPI_Rewrite伪静态规则
4) nginx.conf Nginx下本地伪静态规则
每个规则文件头部都有一个简要说明,均以假设商城放于网站的/mall/目录为例。请耐心看!看明白之后就可以删除说明部分了。【提醒】规则文件都是针对ECMall的片段,不能直接替代你的已有配置文件!请编辑插入我提供的ECMall规则。
所有4个规则文件本人均未亲自测试,我用的是Nginx下Proxy-pass规则-_-!
规则条数较多,使用中有任何问题、或者改进、或者讨论、或者指正,请直接回复本贴!
如果使用出现问题,则一定是我提供的规则文件有瑕疵,你可以自己试着修正规则文件中规则。
关于本伪静态的任何问题,请回复本贴讨论、交流,开帖子多了看不过来。
-------------------------------------------------------------------------------------------------------
重要更新2009.10.15:
文件:themes/store/default/goodsinfo.html
找到:<input type="submit" class="btn1" name="" value="{$lang.view_cart}" onclick="location.href='index.php?
app=cart'" />
改为:<input type="submit" class="btn1" name="" value="{$lang.view_cart}" onclick="location.href=SITE_URL+'/index.php?app=cart'" />
-------------------------------------------------------------------------------------------------------
更新记录:
IIS下规则httpd.ini更新,已测试确保能用。2009.9.24 17:40
更新eccore/view/template.php[template(utf8).php] 修正17#提到的bug,覆盖即可 2009.9.24 21:44
修正商品详情页面点“加入购物车”后弹出页面点“查看购物车”链接失效问题 2009.10.15 18:35


回答:
顶了再测试!!


感谢分享,马上试先!

支持,比我写的那个全面,想看一下效果,不知道楼主为什么要添加<base href...,因为如果伪静态成/mall/xxxx.html的话,所有的js css请求都不会有问题。而且,是有利于搜索引擎优化的。请楼主和2365给个地址看一下。

支持一下

我也想看演示呢

演示给一个啊。呵呵!要不然哪里敢用啊。

这玩意很好 不知道会不会跟官方以后发布的伪静态冲突?

好东西,密切关注!

救命呀!死的很惨!
httpd.conf 独立主机Apache下conf/httpd.conf配置伪静态规则飪�---无法访问网站
拿掉后可以访问网站首页,但其他商品页面连结失效(找不到网址)
备份数据回复后,依然无法恢复动态链接,
强制将temp文件夹删除再将原版temp文件夹上传后
挂件依然无法回复动态链接仅有商品分类恢复动态链接
其他店铺都不正常

天天卖 www.ttmall.cn支持一下

原帖由 2365 于 2009-9-24 11:50 发表
救命呀!死的很惨!
httpd.conf 独立主机Apache下conf/httpd.conf配置伪静态规则飪�---无法访问网站
拿掉后可以访问网站首页,但其他商品页面连结失效(找不到网址)
备份数据回复后,依然无法恢复动态链接,
强制 ...


认真看、仔细看
规则文件只是针对ECMall的片段,不能用来直接替换原来的文件(基本常识)

如果出现任何不希望的后果,想恢复原样要仔细看清你自己改变了什么?而不是乱救一气。整个伪静态并未改变任何数据,你恢复的是什么数据?

太棒了!成功了!大大!
ECMall 2 在独立主机Apacheconf/httpd.conf配置伪静态规则&szlig;未设置
ECMall 2 安装于主域名之下

.htaccess文件放置于ECMall根目录下
其他文件照大大的方法作
修改.htaccess檔内之每列index.php?app=category [L]前加一 /
即如下所列,请比对
#
# ECmall 2 Apache下目录级别伪静态规则
#

# 说明 本规则假定你的商城在域名的目录下面,即:http://wwwabccommall
#
并且假定本htaccess规则文件位于网站根目录

#
如果你的商城在域名的根目录、或将本规则文件直接放于ECmall目录中,

#
请先去掉「RewriteBase mall」中的「mall

#
如果你的商城在其它目录,请先用你的「/目录名」替换「/mall

#

RewriteEngine On

RewriteBase /mall
RewriteRule ^goods(/||/index\.html)$ /index.php?app=category [L]
RewriteRule ^store(/||/index\.html)$ /index.php?app=search&act=store [L]
RewriteRule ^(store|goods)/([0-9]+)(/||/index.html)$ /index.php?app=$1&id=$2 [L]
RewriteRule ^cates/([0-9]+)(/||/index.html)$ /index.php?app=search&cate_id=$1 [L]
RewriteRule ^cates/([0-9]+)/list_p([0-9]+)\.html$ /index.php?app=search&cate_id=$1&page=$2 [L]
RewriteRule ^store/cates(/||/index.html)$ /index.php?app=category&act=store [L]
RewriteRule ^news/(autonym|material)(/||/index.html)$ /index.php?app=article&act=system&code=cert_$1 [L]
RewriteRule ^news/help(/||/index.html)$ /index.php?app=article&code=help [L]
RewriteRule ^cates(/||/index.html)$ /index.php?app=search&act=index [L]
RewriteRule ^cates/list_p([0-9]+)\.html$ /index.php?app=search&act=index&page=$1 [L]
RewriteRule ^news/class_([0-9]+)(/||/index\.html)$ /index.php?app=article&cate_id=$1 [L]
RewriteRule ^news/class_([0-9]+)/list_p([0-9]+)\.html$ /index.php?app=article&cate_id=$1&page=$2 [L]
RewriteRule ^news/view_([0-9]+)(/||/index\.html)$ /index.php?app=article&act=view&article_id=$1 [L]
RewriteRule ^store/list_p([0-9]+)\.html$ /index.php?app=search&act=store&page=$1 [L]
RewriteRule ^store/cates/([0-9]+)(/||/index\.html)$ /index.php?app=search&act=store&cate_id=$1 [L]
RewriteRule ^store/cates/([0-9]+)/list_p([0-9]+)\.html$ /index.php?app=search&act=store&cate_id=$1&page=$2 [L]
RewriteRule ^brand/(.+)/list_p([0-9]+)\.html$ /index.php?app=search&brand=$1&page=$2 [L]
RewriteRule ^brand/(.+)(/|/index\.html)$ /index.php?app=search&brand=$1 [L]
RewriteRule ^brand/(.+)$ /index.php?app=search&brand=$1 [L]
RewriteRule ^store/page_([0-9]+)\.html$ /index.php?app=store&act=article&id=$1 [L]
RewriteRule ^store/([0-9]+)/credit(/||/index\.html)$ /index.php?app=store&act=credit&id=$1 [L]
RewriteRule ^store/([0-9]+)/credit/list_p([0-9]+)\.html$ /index.php?app=store&act=credit&id=$1&page=$2 [L]
RewriteRule ^store/([0-9]+)/credit/lv_([0-9]+)\.html$ /index.php?app=store&act=credit&id=$1&eval=$2 [L]
RewriteRule ^store/([0-9]+)/credit/lv_([0-9]+)_p([0-9]+)\.html$ /index.php?app=store&act=credit&id=$1&eval=$2&page=$3 [L]
RewriteRule ^store/([0-9]+)/list\.html$ /index.php?app=store&id=$1&act=search [L]
RewriteRule ^store/([0-9]+)/list_p([0-9]+)\.html$ /index.php?app=store&id=$1&act=search&page=$2 [L]
RewriteRule ^store/([0-9]+)/list_cat_([0-9]+)\.html$ /index.php?app=store&id=$1&act=search&cate_id=$2 [L]
RewriteRule ^store/([0-9]+)/list_cat_([0-9]+)_p([0-9]+)\.html$ /index.php?app=store&id=$1&act=search&cate_id=$2&page=$3 [L]
RewriteRule ^goods/([0-9]+)/(comments|saleslog|qa)(/||/index\.html)$ /index.php?app=goods&act=$2&id=$1 [L]
RewriteRule ^goods/([0-9]+)/(comments|saleslog|qa)/list_p([0-9]+)\.html$ /index.php?app=goods&act=$2&id=$1&page=$3 [L]

再问大大
完成后商品明细页的IE状态栏并未显示网页完整名称
即仅显示
: http://www. mall.com /goods/867/

如此算伪静态了吗?
如此对搜寻机器人有帮助吗?

谢谢大大!

你没有发现新大陆,你没有仔细看注释部分的说明