• 首页
    • English
    • 中文
  • 关于我们
  • 服务项目
    • 谷歌SEO服务
    • WordPress建站服务
    • 谷歌ADS/SEM代运营
  • 项目案例
    • 医疗
    • 建材
    • 机械加工
    • 照明
    • 电商
    • 电脑硬件
  • 博客
    • 服务器运维
      • aliyun
      • 服务器安装
      • 宝塔面板
      • 虚拟化
      • 阿里云
      • Centos
      • linux
      • nginx
    • 电子商务
    • 免费资源
    • PHP
      • Magento
      • WordPress
    • 大数据采集
    • Python
    • Javascript
    • SEO
    • 未分类
  • 联系我们
What's Hot

机械模具加工公司网站设计案例

24 10 月, 2023

快速原型公司案例

24 10 月, 2023

陶瓷加工网站案例

24 10 月, 2023
Facebook Twitter Instagram
  • 中文
  • English
Facebook Twitter Instagram
VPSEO VPSEO
  • 首页
    • English
    • 中文
  • 关于我们
  • 服务项目
    • 谷歌SEO服务
    • WordPress建站服务
    • 谷歌ADS/SEM代运营
  • 项目案例
    • 医疗
    • 建材
    • 机械加工
    • 照明
    • 电商
    • 电脑硬件
  • 博客
    • 服务器运维
      • aliyun
      • 服务器安装
      • 宝塔面板
      • 虚拟化
      • 阿里云
      • Centos
      • linux
      • nginx
    • 电子商务
    • 免费资源
    • PHP
      • Magento
      • WordPress
    • 大数据采集
    • Python
    • Javascript
    • SEO
    • 未分类
  • 联系我们
VPSEO VPSEO
Home»Uncategorized»ecshop生成真静态页html方法
Uncategorized

ecshop生成真静态页html方法

chrispengcnBy chrispengcn7 8 月, 2021没有评论1 Min Read
Facebook Twitter Pinterest LinkedIn Tumblr Email
Share
Facebook Twitter LinkedIn Pinterest Email

ecshop是一个很不错的网店系统,现在很多公司都在用它,它本身优化也很好,不过因为是网店,很多东西都是动态的,所以,对优化来说,不怎么好,不过庆幸的是它可以伪静态。并且有两种重写方法,在后台的商店设置中,可以选择简单重写和复杂重写。
  伪静态已经基本上可以满足大部分人的需求,如果不满足的还可以根据前面的一篇文章对重写规则进行修改,以满足自己的需求。
  但是本文所要描述的是,根据ECSHOP内在的一些代码,我们生成纯静态的网页,使系统更好的优化。
  在这里,我们先对首页进行纯静态生成。
  ECSHOP是一套很好的PHP开源商城系统,但开源产品总是无法符合各个项目的细节需求。负责人要求每个频道页都静态化,以更好的收录,那我就知道利用dedecms建设一系列的封面模板,然后手动去控制产品的缩略图,至于产品列表页,暂时还没静态化,还在考虑怎么静态化比较好,而商城产品内页静态化则使用以下代码。
  Php代码  
  if(file_exists($htmlfile) && (!$updatehtml)){
  header(“HTTP/1.1 301 Moved Permanently”);
  header(“Location: {$htmlfile}”);
  }else{
  $htmlcontent = $smarty->make_html(“goods.dwt”,$cache_id);
  if(file_put_contents($htmlfile,$htmlcontent)){
  header(“HTTP/1.1 301 Moved Permanently”);
  header(“Location: {$htmlfile}”);
  }
  }
  if(file_exists($htmlfile) && (!$updatehtml)){ header(“HTTP/1.1 301 Moved Permanently”); header(“Location: {$htmlfile}”); }else{ $htmlcontent = $smarty->make_html(“goods.dwt”,$cache_id); if(file_put_contents($htmlfile,$htmlcontent)){ header(“HTTP/1.1 301 Moved Permanently”); header(“Location: {$htmlfile}”); } }
  301转向是否能够将收录的地址改变,这个经过实验是可以的,大家可以site一下我的商城就知道。其实这个静态化方法,我的灵感也是来源于supersite,这套开源系统也是经过动态跳转到静态化,收录还不差,所以就模仿着写。
  1.在首页中,$smarty->display(‘index.dwt’, $cache_id);有这一句,说明是把网页显示出来,现在我们把它改成如下代码(参看注释)
  $file = ‘index.html’;//静态网页文件名
  $content = $smarty->make_html(‘index.dwt’);//根据index.dwt模板生成网页内容
  $filename = ROOT_PATH . $file;//静态网页路径
  file_put_contents($filename, $content);//生成文件
  echo $content;//输出到页面
  这几句放在if (!$smarty->is_cached(‘index.dwt’, $cache_id))判断中这样可以利用原有的判断来决定是不是重新生成静态页面(不过测试了下是一直重新生成的 这个问题有待继续研究)
  //在判断外加上
  //echo file_get_contents(ROOT_PATH . ‘index.html’);//输出静态页面
  以上几条简单的语句,我们就可以生成首页的静态网页。同理,我们可以生成产品类别和产品的静态网页,整个系统的静态化就完成了。
  首页静态页面生成后,我们接下来要生成的是产品类别的静态页面,我的想法是把产品类别页面保存在跟目录下,这样虽然会比较乱,
  但是比较适合优化,因为一般搜索引擎抓取的时候只抓取二到三层。把产品类别放在根目录,体现产品类别的重要性,易于搜索引擎的
  抓取,另外一方面,我们可以把产品放在下个目录中。
  类似代码:
  $filename = build_uri(‘category’, array(‘cid’ => $catinfo[‘cat_id’]));//构造路径,这个可以选择自己喜欢的构造方法
  $content = $GLOBALS[‘smarty’]->make_html(‘category.dwt’);//产生静态页面内容
  $filename = ROOT_PATH . $filename;//生成文件路径,在根目录下
  file_put_contents($filename, $content);//输出
  产品的静态页面代码:
  $goodinfo = get_all_goodsinfo($goods_id);
  $cat_name = $goodinfo[‘cat_name’];
  $goodsfile = build_uri(‘goods’, array(‘gid’ => $goods_id));
  $content = $GLOBALS[‘smarty’]->make_html(‘goods.dwt’);
  $html_tempdir = (ROOT_PATH.$cat_name.’/’);
  if (!is_dir($html_tempdir))//生成产品目录
  {
  mkdir($html_tempdir);
  }
  $htmlfilename = ROOT_PATH . $goodsfile;
  file_put_contents($htmlfilename,$content);
  我的是使用类alias.html’ target=’_blank’>别名称加下划线:
  function build_uri(……..)
  …………….
  case ‘category’:
  $cat_name = $GLOBALS[‘db’]->getOne(‘SELECT cat_name FROM ‘ . $GLOBALS[‘ecs’]->table(‘category’) . ” WHERE cat_id = ‘$cid'”);
  $uri = $cat_name . ‘-‘ . $cid;
  if (!empty($page))
  {
  $uri .= ‘-‘ . $page;
  }
  ……..
  case ‘goods’:
  $goods_info = $GLOBALS[‘db’]->getRow(‘SELECT g.goods_name, c.cat_name FROM ‘ . $GLOBALS[‘ecs’]->table(‘goods’) . ” as g left join ” .
  $GLOBALS[‘ecs’]->table(‘category’) . ” as c on c.cat_id = g.cat_id WHERE g.goods_id = ‘$gid'”);
  $goods_name = $goods_info[‘goods_name’];
  $cat_name = $cat_name;
  $uri = $cat_name . ‘/’ . $goods_name . ‘-‘ . $gid ;
  ……………………..
  有人问 make_html 这个函数在那里: 我现在补充如下:
  在 includes 下的 cls_template.php 加上
  function make_html($filename, $cache_id = ”)
  {
  ob_start();
  $this->display($filename,$cache_id);
  $out = ob_get_contents();
  ob_end_clean();
  return $out;
  }

Share. Facebook Twitter Pinterest LinkedIn Tumblr Email
chrispengcn
  • Website

Related Posts

Nginx做负载均衡,有没有办法碰到404就跳过?

2 7 月, 2022

如何快速把多个excel表合并成一个excel表

7 8 月, 2021

nginx配置泛域名转发到子目录nginx泛域名转发到泛域名

7 8 月, 2021

wordpress如何防止发布文章时候自动清除

、
换行标签

7 8 月, 2021
Add A Comment

Leave A Reply Cancel Reply

*

code

导航
  • 首页
  • 关于我们
  • 服务项目
  • 项目案例
  • 博客文章
  • 联系我们
博客
  • 服务器运维
  • 服务器安装
  • nginx
  • PHP
  • WordPress
  • Python
  • Javascript
  • SEO
  • 电子商务
  • 大数据采集
  • 宝塔面板
  • 数据库
  • 电子商务
  • 虚拟化
  • 阿里云
导航
  • 首页
  • 关于我们
  • 谷歌SEO服务
  • 谷歌ADS/SEM代运营
  • WordPress建站服务
  • 项目案例
  • 博客
  • 联系我们
最新文章
  • 机械模具加工公司网站设计案例
  • 快速原型公司案例
  • 陶瓷加工网站案例
  • CNC数控加工日文网站案例
  • 触摸一体机数字标牌厂家网站案例
关于我们
关于我们

广州纬来科技有限公司
联系地址:广东省广州市番禺区富华中路富源二街18号合和大厦809

QQ : 13602156
Email : 13926026058@139.com
Contact: +86 13926026058

Facebook Twitter YouTube LinkedIn
© 2025 广州纬来科技有限公司 粤ICP备2023105857号-2
  • 首页
  • 关于我们
  • 谷歌SEO服务
  • 谷歌ADS/SEM代运营
  • WordPress建站服务
  • 项目案例
  • 博客
  • 联系我们

Type above and press Enter to search. Press Esc to cancel.