1、对网站页面进行静态化处理
两种一种是伪静态,就是url 重写,一种是你真的静态化。伪静态不较好实现
<add name="RewriteItem" virtualUrl="^~/Article/(\S+)/(\d+).html"
rewriteUrlParameter="ExcludeFromClientQueryString"
destinationUrl="~/User/ShowArticle.aspx?id=$2"
ignoreCase="true" />
类似于这样配置一下就可以了
如果你想生成静态的话,也会有两种实现,一种是在 peage rander 的时候把html 保存成静态,还有一种是直接写一个模板,然后把模板中的内容替换成文章的标题你 内容 等 如 $$Title$$ $$Count$$ 用正则表达式
2、asp.net动态网页静态化主要有哪几种技术?
只有两种。第一种就是最简单的,获取页面的html再写入一个html。
第二种,就是做一个模版,不改动的内容写如进去,其他的地方可以调用js。由js来动态控制显示的结果,比如广告,通告 等不定期会改进的地方。
如果用webclient再第一次访问时自动生成html也是可以的。这个方法适用已经运营的一段时间的网站。如果每次都去生成的话就不必考虑了。
3、大型php网站全站静态化怎么实现? 如果有上万个页面每更改一小篇文章都要全部重新生成吗?
用libTemplate实现静态网页的生成
作者:iwind
原来在dev-club发表的一篇文章,将怎么用模板处理程序PHPlib 中的template.inc实现静态网页的生成,呵呵,居然被列入精华,并被多个网站转载,想来这是荣幸。其实网上这方面的东西很多了,我上此发布的所谓IAMS( iwind 文章管理系统),里面也有,有心人可以看一下。下面我只是简要在总结一次。
现在一般说生成静态网页的方法有三种,一个是配置服务器,大家可以到http://www.devarticles.com/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,退回稿件(把生成的静态网页删除,把数据库中的内容删除)
然后,我们访问到的网站内容就都是静态的了。一个问题就是,这种方法会不会占用很多空间内?http://www.csdn.com.cn 有上千篇文章了,只占用了20M空间。反过来说,如果你有10000篇文章的话,你不会吝啬到只买200M的空间吧?
或许你对生成静态的文章列表感到困惑,其实方法是一样的,就是 计算页码? 分析每个页码的内容 ? 写入文件。 分析每个页码的内容,当然是写个函数咯,如果你一页一页的生成,恐怕被人嘲笑 ^_^。
静态网页不仅仅是可以减轻服务器负担,提高访问速度,也可以方便地做镜像网站,方便地备份,减少被攻击损失程度,加快还原速度。当然静态网页也会给大家带来诸多不便的地方,你需要在动态和静态之间做出平衡,
也可以在静态网页中加入js调用的php代码,来达到计数,即时更新等目的。(完)
4、谁知道joomla怎么实现网页静态化啊?
我知道、首先空间是LINUX平台,再者,你到后台-全局设置-搜索引擎优化(SEO)设置。这里三个全选是就OK了。
5、如何实现网页静态化
方法一:使用现成的插件,比如:ISAPI_Rewrite、IIS Rewrite、Apache
HTTP服务器的mod_rewrite等,它们都是基于正则表达式解析器开发的重写引擎。它们的使用方法查看它们自带的帮助即可。
方法二:自己写的代码实现动态网页静态化,方法也有好几种:
1、创建FSO对象,利用此对象将所需的内容动态创建到文件中生成HTML页面;
2、利用模板技术,将模板中特殊代码的值替换为从表单或是数据库字段中接受过来的值 生成HTML文件;
3、使用Server.Transfer转换技术,
方法三:使用HttpWebRequest请求客户端的方式,获取返回资源,生成静态页面。一般这样只需要获取网页内容即可,其它资源可放置在服务器上,自动加载。(注:此方法缺点明显,需要大量更改匹配URL,建议慎用)
方法四:在asp中有IhttpMole接口。Ihttpmole可以简单理解为一个可以在执行像.aspx,或者mvc中control/action前,添加我们自定义的操作的东西。
我们只需要编写这么一个HttpMole就可以了,当用户第一次请求asp处理时,我们可以在ihttpmole中拦截到这个请求,然后获取到这次请求应该返回的html代码,然后我们返回这些html给用户,并保存刚才我们获取到的html到文件内,当用户下次请求时,我们只需要直接返回我们已经保存的html文件即可
6、cms 静态化
具体怎么做的话就说起来很麻烦了,现在大多网站使用的是伪静态,虽然在手路上没问题,但是在流量大的时候一样很占用服务器的资源的。
CMS的话静态做的比较好的个人认为是帝国CMS,是用PHP做的,可以完全生成静态页面。
是开源免费的,你可以下载了去研究下,PHP和JSP差异不是很大,很多业务流程都差不多的。
7、网站页面静态化有什么好处
好处有以下几点:
静态网页化可以提高速度 不管是asp、php、jsp、.net等动态程序,都需要读取调用数据库内容,才能显示数据,相对于流量比较大,就增加了数据库的读取次数,占用很大的服务器资源,影响网站速度。而采用网站做成静态的,直接除去了读取数据库的操作,减少了环节,还提高了网站反映速度。
静态网页化有利于搜索引擎的收录 从网站优化来分析,搜索引擎更喜欢静态的网页,静态网页与动态网页相比,搜索引擎更喜欢静的,更便于抓取,搜索引擎SEO排名更容易提高,目前一些门户网站,如新浪、搜狐、网易、阿里巴巴、百度、慧聪等,页面大多都采用静态或伪静态网页来显示,更便于搜索引擎抓取与排名。
静态网页化有利于网站稳定
1、从安全角度讲,静态网页不宜遭到黑客攻击,但也说不定,黑客能耐大着呢
2、从网站稳定性来讲,如果程序、数据库出了问题,会直接影响网站的访问,而静态网页就避免了如此情况,不会因为程序等,而损失网站数据,影响正常打开。
静态页面是网页的代码都在页面中,不需要执行asp,php,jsp,.net等程序生成客户端网页代码的网页,静态页面网址中一般不含“?”、“=”、“&”等特殊符号。静态页面不能自主管理发布更新的页面,如果想更新网页内容,要通过FTP软件把文件DOWN下来用网页制作软件修改(通过fso等技术例外) 常见的静态页面举例:.html扩展名的、.htm扩展名的。 注意:静态页面并非网站上没有动画的就是静态页面。
8、如何实现网站的纯静态化,访问页面时生成和后台一键生成的区别是什么?
如果要实现建议自己写这页面,不建议使用cms建站。不过现在很多cms系统都支持页面静态化,具体方法建议上网查询。
9、网站建设为什么要使用网页静态化技术
这个主要是满足搜索引擎抓取的需求,静态页面比较容易让百度等搜索引擎抓取。
但是,现在搜索引擎技术都在进步,如果没有特殊需求,一般也可以动态化网页。