解决ECshop实现URL重写伪静态和全静态.doc

上传人:laozhun 文档编号:3034411 上传时间:2023-03-09 格式:DOC 页数:4 大小:25KB
返回 下载 相关 举报
解决ECshop实现URL重写伪静态和全静态.doc_第1页
第1页 / 共4页
解决ECshop实现URL重写伪静态和全静态.doc_第2页
第2页 / 共4页
解决ECshop实现URL重写伪静态和全静态.doc_第3页
第3页 / 共4页
解决ECshop实现URL重写伪静态和全静态.doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《解决ECshop实现URL重写伪静态和全静态.doc》由会员分享,可在线阅读,更多相关《解决ECshop实现URL重写伪静态和全静态.doc(4页珍藏版)》请在三一办公上搜索。

1、ECshop 2.7.2实现简单URL重写-伪静态及全静态* 一、找到Apache 服务器 1、首先您需要找到 Apache 安装目录,之后找到 conf 目录下的 httpd.conf 文件。 2、将下面的代码复制到 httpd.conf 文件中,注意将 /ecshop 替换为您的商店的实际 安装目录。 Options FollowSymLinks AllowOverride All 3、在 httpd.conf 中搜索 LoadModule rewrite_module,将该行前面的 # 号删除。 如果您的 Apache 是1.3.x版本还需要查找 AddModule mod_rewrit

2、e.c, 请将前面的#删除。 4、保存 httpd.conf。 5、将 ecshop 目录下的 htaccess.txt 重命名为 .htaccess。(windows下用记事本打开然后另存为为 .htaccess 。) 6、重新启动 Apache。 7、进入 ecshop 管理中心-商店设置,将 URL 简单重写设置为启用。 如果您想通过 httpd.conf 来设置重写规则,请按照下面的步骤操作: 1、执行上面第1-3步操作。 2、找到您的商店所在的虚拟主机段,如: DocumentRoot D:/php/xampp/htdocs# Each directory to which Apac

3、he has access can be configured with respect# to which services and features are allowed and/or disabled in that# directory (and its subdirectories). # First, we configure the default to be a very restrictive set of # features. 3、将下面的内容加入在此段代码后面。 RewriteEngine On RewriteRule (.*)/index.html$ $1/inde

4、x.php RewriteRule (.*)/category$ $1/index.php L RewriteRule (.*)/feed-c(0-9+).xml$ $1/feed.php?cat=$2 L RewriteRule (.*)/feed-b(0-9+).xml$ $1/feed.php?brand=$2 L RewriteRule (.*)/feed.xml$ $1/feed.php RewriteRule (.*)/category-(0-9+)-b(0-9+)-min(0-9+)-max(0-9+)-attr(-*)-(0-9+)-(.+)-(a-zA-Z+)(.*).htm

5、l$ $1/category.php?id=$2&brand=$3&price_min=$4&price_max=$5&filter_attr=$6&page=$7&sort=$8&order=$9 QSA,L RewriteRule (.*)/category-(0-9+)-b(0-9+)-min(0-9+)-max(0-9+)-attr(-*).html$ $1/category.php?id=$2&brand=$3&price_min=$4&price_max=$5&filter_attr=$6 QSA,L RewriteRule (.*)/category-(0-9+)-b(0-9+)

6、-(0-9+)-(.+)-(a-zA-Z+)(.*).html$ $1/category.php?id=$2&brand=$3&page=$4&sort=$5&order=$6 QSA,L RewriteRule (.*)/category-(0-9+)-b(0-9+)-(0-9+)(.*).html$ $1/category.php?id=$2&brand=$3&page=$4 QSA,L RewriteRule (.*)/category-(0-9+)-b(0-9+)(.*).html$ $1/category.php?id=$2&brand=$3 QSA,L RewriteRule (.

7、*)/category-(0-9+)(.*).html$ $1/category.php?id=$2 QSA,L RewriteRule (.*)/goods-(0-9+)(.*).html$ $1/goods.php?id=$2 QSA,L RewriteRule (.*)/article_cat-(0-9+)-(0-9+)-(.+)-(a-zA-Z+)(.*).html$ $1/article_cat.php?id=$2&page=$3&sort=$4&order=$5 QSA,L RewriteRule (.*)/article_cat-(0-9+)-(0-9+)(.*).html$ $

8、1/article_cat.php?id=$2&page=$3 QSA,L RewriteRule (.*)/article_cat-(0-9+)(.*).html$ $1/article_cat.php?id=$2 QSA,L RewriteRule (.*)/article-(0-9+)(.*).html$ $1/article.php?id=$2 QSA,L RewriteRule (.*)/brand-(0-9+)-c(0-9+)-(0-9+)-(.+)-(a-zA-Z+).html $1/brand.php?id=$2&cat=$3&page=$4&sort=$5&order=$6

9、QSA,L RewriteRule (.*)/brand-(0-9+)-c(0-9+)-(0-9+)(.*).html $1/brand.php?id=$2&cat=$3&page=$4 QSA,L RewriteRule (.*)/brand-(0-9+)-c(0-9+)(.*).html $1/brand.php?id=$2&cat=$3 QSA,L RewriteRule (.*)/brand-(0-9+)(.*).html $1/brand.php?id=$2 QSA,L RewriteRule (.*)/tag-(.*).html $1/search.php?keywords=$2

10、QSA,L RewriteRule (.*)/snatch-(0-9+).html$ $1/snatch.php?id=$2 QSA,L RewriteRule (.*)/group_buy-(0-9+).html$ $1/group_buy.php?act=view&id=$2 QSA,L RewriteRule (.*)/auction-(0-9+).html$ $1/auction.php?act=view&id=$2 QSA,L 通过这种方法可以实现,ECshop URL简单重写,达到伪静态的目的。ECshop 2.7.2实现简单URL重写-全静态ecshop生成静态2010-09-0

11、4 21:14ecshop是一个很不错的网店系统,现在很多公司都在用它,它本身优化也很好,不过因为是网店,很多东西都是动态的,所以,对优化来说,不怎么好,不过庆幸的是它可以伪静态。并且有两种重写方法,在后台的商店设置中,可以选择简单重写和复杂重写。伪静态已经基本上可以满足大部分人的需求,如果不满足的还可以根据前面的一篇文章对重写规则进行修改,以满足自己的需求。但是本文所要描述的是,根据ECSHOP内在的一些代码,我们生成纯静态的网页,使系统更好的优化。在这里,我们先对首页进行纯静态生成。1.复制首页index.php为index_html.php,因为ECSHOP是使用SMARTY模板引擎的,

12、所以我们可以使用SMARTY生成文件函数,把模板的静态网页输出。在首页中,$smarty-display(index.dwt, $cache_id);有这一句,说明是把网页显示出来,现在我们把它改成如下代码(参看注释)$file = index.html;/静态网页文件名$content = $GLOBALSsmarty-make_html(index.dwt);/根据index.dwt模板生成网页内容$filename = ROOT_PATH . $file;/静态网页路径file_put_contents($filename, $content);/生成文件以上几条简单的语句,我们就可以生

13、成首页的静态网页。同理,我们可以生成产品类别和产品的静态网页,整个系统的静态化就完成了。首页静态页面生成后,我们接下来要生成的是产品类别的静态页面,我的想法是把产品类别页面保存在跟目录下,这样虽然会比较乱,但是比较适合优化,因为一般搜索引擎抓取的时候只抓取二到三层。把产品类别放在根目录,体现产品类别的重要性,易于搜索引擎的抓取,另外一方面,我们可以把产品放在下个目录中。类似代码:$filename = build_uri(category, array(cid = $catinfocat_id);/构造路径,这个可以选择自己喜欢的构造方法$content = $GLOBALSsmarty-ma

14、ke_html(category.dwt);/产生静态页面内容$filename = ROOT_PATH . $filename;/生成文件路径,在根目录下file_put_contents($filename, $content);/输出产品的静态页面代码:$goodinfo = get_all_goodsinfo($goods_id);$cat_name = $goodinfocat_name;$goodsfile = build_uri(goods, array(gid = $goods_id);$content = $GLOBALSsmarty-make_html(goods.dwt)

15、;$html_tempdir = (ROOT_PATH.$cat_name./);if (!is_dir($html_tempdir)/生成产品目录mkdir($html_tempdir);$htmlfilename = ROOT_PATH . $goodsfile;file_put_contents($htmlfilename,$content);我的是使用类别名称加下划线:function build_uri(.).case category:$cat_name = $GLOBALSdb-getOne(SELECT cat_name FROM . $GLOBALSecs-table(cat

16、egory) . WHERE cat_id = $cid);$uri = $cat_name . - . $cid;if (!empty($page)$uri .= - . $page;.case goods:$goods_info = $GLOBALSdb-getRow(SELECT g.goods_name, c.cat_name FROM . $GLOBALSecs-table(goods) . as g left join .$GLOBALSecs-table(category) . as c on c.cat_id = g.cat_id WHERE g.goods_id = $gid);$goods_name = $goods_infogoods_name;$cat_name = $cat_name;$uri = $cat_name . / . $goods_name . - . $gid ;

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 教育教学 > 成人教育


备案号:宁ICP备20000045号-2

经营许可证:宁B2-20210002

宁公网安备 64010402000987号