全站静态化网站url静态化有必要吗 给点rul静态化的建议

全站静态化  时间:2020-11-27  阅读:()

大型php网站全站静态化怎么实现? 如果有上万个页面每更改一小篇文章都要全部重新生成吗?

用libTemplate实现静态网页的生成 作者:iwind 原来在dev-club发表的一篇文章,将怎么用模板处理程序PHPlib 中的template.inc实现静态网页的生成,呵呵,居然被列入精华,并被多个网站转载,想来这是荣幸。其实网上这方面的东西很多了,我上此发布的所谓IAMS( iwind 文章管理系统),里面也有,有心人可以看一下。下面我只是简要在总结一次。 现在一般说生成静态网页的方法有三种,一个是配置服务器,大家可以到/c/b/PHP/ 去找找看,对于这个很多地方都有的。另外一个是用ob_函数控制输出。方法如下:先用ob_start();打开输出缓冲器,然后是对数据的分析,操作等等,跟着用ob_get_contents();获取缓冲区的内容,然后再写入文件。根据这个步骤,可以写出以下程序: <?php ob_start(); //主体部分,数据操作,处理,输出等等。。。 require”global.php”; mysql_connect(“localhost”,”root”,””); ….. //获取缓冲区内容 $contents=ob_get_contents(); //如果不想输出任何东西,可以加上这句 ob_end_clean(); //写入目的文件 $fp=@fopen($targetFile,”w+”) or die(“打开文件时出错”); fwrite($fp,$contents); ?> 这样就把这个动态页面的内容写入了静态页面,$targetFile.像有的网站首页内容很多,要调用n多个查询语句时,不妨定时生成静态网页,既大幅提高了访问速度,也减轻了服务器负担。 你可以看出来,我用ob_只是处理单个页面,对于批量写入或更新多个页面,这个方法就不行了。这就是我要讲的第三种方法,用模板。模板是个好东东,现在大家都或多或少在用它,建议还不会简单模板处理的网友,花点时间去学它,一般的模板处理程序都很简单的。用模板实现静态网页的生成是非常简单的,方法就是获取分析结果,把分析结果写入文件。下面就以PHPlib中的template.inc来谈谈如果用模板生成静态网页。 一, 修改template.inc 加入以下的几个函数: //将分析结果保存到文件中去 function savetofile ($dir,$varname){ $data=$this-> finish($this-> get_var($varname)); $fp=fopen($dir, "w+ "); fwrite($fp,$data); } //清除已赋值数组 function renew(){ $this-> varkeys=array(); $this-> varvals=array(); $this-> file=array(); } 第一个函数是结果保存到静态文件中,第二个是把所有的模板分析变量都置为空,以免批量处理时相互影响。 二,实现静态网页生成。 <?php $itpl-> set_file(“main”,”mian.tpl”); //分析模板变量 ….. //分析main?mains $tpl-> parse( "mains ", "main "); //把分析结果mains存入main.html $tpl-> savetofile( "main.html ", "mains "); //置空 $tpl-> renew();//至关重要 ?> 呵呵,是不是很简单,main.html就是我们要的内容。下面是一个结合数据库的例子,并用函数封装了起来。 <?php //$aid是数据库中的文章id,$table是表名称,$template是模板地址,$tpl是template.inc的一个实例 //每一个aid对应一个静态网页地址,都存在一个数据表中 //表的结构类似于 aid target title // 1 a1.html …. // 2 a2.html …. // 3 a3.html …. function staticInfo($aid){ global $table,$template,$tpl; //查询数据库 $res=mysql_query(“select * from $table where aid=’$aid’”); //取出数据 $array=mysql_fetch_array($res); //读静态网页地址,标题。 $target=$array[“target”]; $title=$array[“title”]; //分析模板 $tpl-> set_file(“main”,$template); //把模板中的{title}变量换成$title $itpl-> set_var(“title”,$title”); //分析整个模板 $itpl-> set_var(“mains”,”main”); //把mains写入文件 $tpl-> savetofile($target, "mains "); //置空 $tpl-> renew(); } ?> 这样我们就可以用函数staticInfo()把我们想要处理的任一篇文章都生成静态网页。表$target里也可以包含文章内容,作者,来源等等,方法是一样的。 三,更新静态网页 一篇文章加入数据库后,由于一些原因我们总要修改一些文章。这时候,只要把相应的静态网页重新生成一次即可。这是非常方便的,因为表中已经有了静态网页的目标地址target字段。 可以看出关键所在,一篇文章生成静态网页的关键所在就是$template(模板地址),$target(目标地址)。前者,我们可以先确定,后者可以由你随心所欲的为每篇文章设置一个地址。常用的有1,时间戳 2,时分秒 3,根据文章id。因为这些重复的机会会非常小的。 四,批量生成静态网页. 有了单个文章生成的静态网页的函数了,那么批量生成是非常简单的。就是获取所有的文章aid,然后套入函数即可。 <?php //引用模板类 require”template.inc”; //引入函数 require”functions.php”; //一些变量的定义 $table=”art”; $template=”template/info.tpl”; $tpl=new Template(“.”); //连接mysql,选择数据库 mysql_connect(“localhost”,”root’,””); mysql_select_db(“article”); //发送查询语句 $res=mysql_query(“select aid from $table”); while($r=mysql_fetch_array($res)){ $aid=$r[“aid”]; //生成静态网页 staticInfo($aid); } //结束 echo”所有静态网页更新/生成成功”; ?> 上面就是完整的例子。我们做cms的流程可以如下: 1,记者发稿(把稿件内容放入数据库) 2,编辑审查(如果他认为可以发布,那么就可以把这些内容生成静态网页) 3,退回稿件(把生成的静态网页删除,把数据库中的内容删除) 然后,我们访问到的网站内容就都是静态的了。一个问题就是,这种方法会不会占用很多空间内? 有上千篇文章了,只占用了20M空间。反过来说,如果你有10000篇文章的话,你不会吝啬到只买200M的空间吧? 或许你对生成静态的文章列表感到困惑,其实方法是一样的,就是 计算页码? 分析每个页码的内容 ? 写入文件。 分析每个页码的内容,当然是写个函数咯,如果你一页一页的生成,恐怕被人嘲笑 ^_^。 静态网页不仅仅是可以减轻服务器负担,提高访问速度,也可以方便地做镜像网站,方便地备份,减少被攻击损失程度,加快还原速度。当然静态网页也会给大家带来诸多不便的地方,你需要在动态和静态之间做出平衡, 也可以在静态网页中加入js调用的php代码,来达到计数,即时更新等目的。(完)

页面静态化对网站优化有影响吗?

你既然这么清楚,干嘛还要问那,其实,静态优化也是有条件,对于交互性很强的网站,一般做很少的静态化,这个关键看信息的时效性,如果是门户 信息网,静态化是必须的,如果是社交网 那静态化可要考虑了,目前常见的都是动静都有,静态化不常改动的信息,

早期的搜索引擎对url里面?之后的数据不抓(蜘蛛陷阱问题),因此才静态化,如今稍有改观,个别的?的数据也可以抓,比较少

php站怎么把全站URL静态化

在apache的conf/httpf.conf文件下配置,打开扩展#LoadModule rewrite_module modules/mod_rewrite.so去掉#号,,,,在<Directory "这是我的路径F:/PHP/AppServ/www">这里把改 Options Indexes FollowSymLinks MultiViews ExecCGI成Options all;,,,在后面文件后面加上RewriteEngine on 换行 RewriteRule ^文件名([0-9]*).html$ /文件名.php?id=$1,,文件要在www下

网站url静态化有必要吗 给点rul静态化的建议

动态化页面的问题:1、蜘蛛不好爬取2、url难以语义化3、动态页面不能建立sitemap.xml,难以及时向搜索引擎提交页面更新你到网上去看所有收录的好的网站,包括:1、独立博客2、C2C网站,如:淘宝网、百度有啊、易趣、卓越、当当3、你能想到的其他任何门户这些都是静态url至于网上对url静态化的种种不同看法,我的意见是:或许搜索引擎目前对动态页面的收录能力更强了,但是,经过实践验证过的结果是,静态化页面更有助于seo。即便出于这一个理由,你也不必去过多探讨关于静态化的种种非议。因为seo是一门高度实践的技术,知道什么是“好的”就可以了。理论与探索要等我们出了成绩,有空闲的的时候再去琢磨你说呢?

Contabo美国独立日促销,独立服7月€3.99/月

Contabo自4月份在新加坡增设数据中心以后,这才短短的过去不到3个月,现在同时新增了美国纽约和西雅图数据中心。可见Contabo加速了全球布局,目前可选的数据中心包括:德国本土、美国东部(纽约)、美国西部(西雅图)、美国中部(圣路易斯)和亚洲的新加坡数据中心。为了庆祝美国独立日和新增数据中心,自7月4日开始,购买美国地区的VPS、VDS和独立服务器均免设置费。Contabo是德国的老牌服务商,...

收到几个新商家投稿(HostMem,无忧云,青云互联,TTcloud,亚洲云端,趣米云),一起发布排名不分先后

7月份已经过去了一半,炎热的夏季已经来临了,主机圈也开始了大量的夏季促销攻势,近期收到一些商家投稿信息,提供欧美或者亚洲地区主机产品,价格优惠,这里做一个汇总,方便大家参考,排名不分先后,以邮件顺序,少部分因为促销具有一定的时效性,价格已经恢复故暂未列出。HostMem部落曾经分享过一次Hostmem的信息,这是一家提供动态云和经典云的国人VPS商家,其中动态云硬件按小时计费,流量按需使用;而经典...

2021HawkHost老鹰主机黑色星期五虚拟主机低至3.5折 永久4.5折

老鹰主机HawkHost是个人比较喜欢的海外主机商,如果没有记错的话,大约2012年左右的时候算是比较早提供支付宝付款的主机商。当然这个主机商成立时间更早一些的,由于早期提供支付宝付款后,所以受众用户比较青睐,要知道我们早期购买海外主机是比较麻烦的,信用卡和PAYPAL还没有普及,大家可能只有银联和支付宝,很多人选择海外主机还需要代购。虽然如今很多人建站少了,而且大部分人都用云服务器。但是老鹰主机...

全站静态化为你推荐
虚拟空间购买怎样购买顶级域名和虚拟主机空间400M美国vps服务器美国Vps 哪里的稳定,服务好,不是代购,主要是我新手,不太懂域名注册服务万网域名注册服务怎么样?国内免费空间国内有没有好的免费空间啊美国vps租用如何选择国外vps服务器?成都虚拟空间五星网络隶属于成都冠一科技有限公司,虚拟空间购买了不到一个月不能访问2次,质量真差啊!网站空间购买购买网站空间需要注意什么网站空间免备案免备案网站空间哪个好虚拟主机系统虚拟主机上的系统与电脑操作系统差别?新加坡虚拟主机香港云主机和虚拟主机相比较那个好?
美国和欧洲vps com域名抢注 justhost 香港vps99idc hawkhost优惠码 韩国空间 国外服务器 美国主机代购 12u机柜尺寸 web服务器架设 大容量存储器 nerds yundun 重庆电信服务器托管 dnspod 上海电信测速 hostease 服务器托管价格 qq空间打开很慢 winserver2008下载 更多