登录 |  注册 |  繁體中文


伪静态技术

分类: 其它 颜色:橙色 默认  字号: 阅读(2253) | 评论(0)

一、伪静态技术产生的背景
1、静态网页与动态比较:
  1)静态网页:
    优势:A、 对搜索引擎友好,被收录的质量高;B、访问速度快;C、资源(cpu 等)占用少。
    劣势:A、对于大型门户,或者社区来说,不断的修改将会产生大量I/O,会导致磁盘出现碎片甚至出现磁盘坏道。相当恐怖一个隐患。用户信息一旦没有了就没戏玩了。B、储存空间占用会多一些。
  2)动态网页:
    优势:相对于静态,它的劣势也就是动态的优势所在——占用空间少,对硬盘友好。
    劣势:A、对搜索引擎不友好。搜索引擎会不收录带问号的网址.因为搜索引擎怕由于问号而进入死循环。
                B、高并发时资源占用较多。

2、而伪静态就是在这样背景下应运而生了,它在保留动态的优点的基础上,使得网址静态化,也就是让网址里不带问号,骗过收录的爬虫就行了。这样完美地糅合了前边两者的优点。
优点:静态的优点+动态的优点
不足:流量稍大一些使用伪静态就出现CPU使用超负荷,由于伪静态是用正则判断而不是真实地址,分辨到底显示哪个页面的责任也由直接指定转由CPU来判断了,所以CPU占有量的上升,确实是伪静态最大的弊病.

3、实现机制:是利用服务器端,对请求的动态页面做改动,让浏览器认为访问的也是静态页面,这个时候,浏览器地址栏中显示的就是静态地址信息(不带问号)了。

 

 

 

二、实现方法

1、如果是ASP.NET
①:首先要有这个文件URLRewriter.dll,[点击下载],将其放到网站的bin目录里面,并且将其引用到项目里面;
②:Web.Config文件里面添加如下配置

<configuration>
        <configSections>
        <section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />
    configSections>

    
<RewriterConfig>
        <Rules>
            
                <RewriterRule>
                    <LookFor>~/News/(.[0-9]*)\.aspxLookFor>
                    <SendTo>~/News.aspx?ID=$1< ndTo>
                RewriterRule>
        Rules>
    RewriterConfig>
   <system.web>
    <httpHandlers>
        <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />
       httpHandlers>
    system.web>

设置完以上两个步骤,就基本可以运行了,这样比如上面的网址http://localhost/News.aspx?id=9就可以用http://localhost/News/9.aspx来代替。

上面的<LookFor>~/News(.[0-9]*)\.aspxLookFor>这句这正则表达式URL,即被重写的URL,而<SendTo>~/News.aspx?UserID=$1SendTo>这一句为原始URL地址。其中的$1为第一个正则表达式值,以此类推,第二个即为$2

 

注意:上面例子的扩展名为.aspx,如果你喜欢用htm做扩展名,这还需要做下面一步,
IIS配置:网站->属性->主目录->配置->映射->应用程序扩展->添加
可执行文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll
扩展名:.html
动作:限制为 GET,HEAD,POST,DEBUG
脚本引擎:选中
确认文件是否存在:不选

只有做了最后一步,才可以用http://localhost/News/9.html 访问。

 

三、结论
伪静态太适合用在普通的企业网站上了——既不要求高并发,但同时又很在乎seo(搜索引擎优化),而且也要求后台可动态更新。——当然实现直接生成静态页也行,因为这种不像社区那种修改量那么大。

 




姓 名: *
邮 箱:
内 容: *
验证码: 点击刷新 *   

回到顶部