当目录存在不伪静态
最佳回答
ecshop是一个很不错的网店系统,现在很多公司都在用它,它本身优化也很好,不过因为是网店,很多东西都是动态的,所以,对优化来说,不怎么好,不过庆幸的是它可以伪静态。并且有两种重写方法,在后台的商店设置中,可以选择简单重写和复杂重写。
伪静态已经基本上可以满足大部分人的需求,如果不满足的还可以根据前面的一篇文章对重写规则进行修改,以满足自己的需求。
但是本文所要描述的是,根据ECSHOP内在的一些代码,我们生成纯静态的网页,使系统更好的优化。
在这里,我们先对首页进行纯静态生成。
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);
我的是使用类别名称加下划线:
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;
}
最新回答共有5条回答
-
失控的影子
回复因为创作者认证分普通认证和优质认证两种,因此这个问题需要从两方面分析。
一、普通兴趣认证(静态管理)普通兴趣认证是入门级别,权益和福利相对单一,只加注“某领域创作者”,不加黄V。但是,任务也相对单一,30天内完成四个优质回答即可,而且“一手交钱一手交货”:第一天完成四个优质回答就第一天完成认证,第十天完成就第十天完成认证,第三十天完成就第三十天完成认证。普通兴趣认证完成后,认证信息是永久的,因为四个优质回答是实实在在创作完成的,是系统明明白白审核通过的。只要账号持有人不主动取消认证,系统是永久保留其认证信息的。因此,完成普通兴趣认证后,无论是否继续回答问题,认证信息是不会取消的。
值得注意的是,如果账号持有者修改兴趣认证领域,是需要在新领域内从零开始认证的,也就是说,需要完成新领域的四个优质回答。因为之前的四个优质回答只能展示之前领域的创作能力。
二、优质兴趣认证(动态管理)优质兴趣认证是在普通兴趣认证基础上升级而来的,权益和福利相对高级,加注“某领域优质创作者”,并加黄V。相应地,任务也相对复杂。其实,多项任务中大多数任务相对固定和简单,最难的是“在某领域内持续贡献优质内容”,而题主所问的“创作者认证后不再回答问题会取消吗”也与此有关。
在升级阶段需要“在某领域内持续贡献优质内容”,同样完成优质认证后,如果不坚持“在某领域内持续贡献优质内容”,认证信息是有可能被降级(从某领域优质创作者降级为某领域创作者),同时黄V被取消。
下面我们分析一下“在某领域内持续贡献优质内容”中的三大要素。
(一)垂直度
虽然近期(包括)淡化了领域概念,但是在兴趣认证中,无论是普通兴趣认证还是优质兴趣认证,都是要审核所申请领域的创作力,因此发布的内容(无论是问答、图文还是视频以及微头条和小视频)都要保持高度垂直。
&
-
seo从业者
回复在众多的自媒体平台中,唯一觉得不错的就是头条了。而且现在发展的势头非常迅猛,除了和一般的自媒体平台以外,还有一个,也是为我们一些创作者提供了额外的收入。
在我们刚入局自媒体时,是没有任何的经验可循。甚至写文章都非常的麻烦,有时候不得不采取一些其它的办法。不过在头条上,你自然不用担心这个,它的兴趣认证是可以给你一些参考。
申请某个领域的时候,我们需要进行一个认证。这个认证是在上完成的。要求也不算难,在一个月内,回答问题,其中有4个过优质回答便可以通过认证,记得一定是自己申请领域的问题。
为什么说它非常的好呢,其实回答问题等于是写作文,以问题作为中心的主旨,然后结合自己的观点,配上文字与图片。或者可以理解为这是一篇文章的原型,有了这个经历以后,我们再去写文章,大概的思路也就有了。
一旦通过4个优质回答以后,我们所发表的文章比没有认证的肯定是有更多的展现量。在这或许会有人担心,认证后不再回答问题会被取消吗?这个可以明确的告诉你,是不会的,将永久展现兴趣认证信息。
但是我们不要去触犯一些规章制度,发布什么违规的、涉及暴力这类信息。被发现之后,我们的账号是会被扣分,同时兴趣认证身份也将被取消。我们在认证通过以后,是有2个方向可以发展的。
一个是我们写自己的文章,另外一个是写。不管选择哪个,尽量选择自己认证的领域进行创作,记得要加油哦,不要轻易放弃。
-
游客
回复专题目录不清楚是什么,可能你需要的是“目录化伪静态”。
默认就是有伪静态的,topic-{name}.html
我的做法是topic改为zt,-改为/。
效果就是域名/zt/name.html
后台seo处和伪静态规则文件都改下就可以了。