zoukankan      html  css  js  c++  java
  • 伪静态技术总结(伪静态系列二)

      最近由于需要使用伪静态,匆忙补充了对这一块的认识.   在网上找了一下,最后决定使用Intelligencia.UrlRewriter.dll这个组件.

         配置的话,网上应该有很多了.这里我以我的xp上的iis5.1为例:

        1.在web项目里面引用Intelligencia.UrlRewriter.dll

        2. 在web.config中的<configSections>结点下添加:     <section name="rewriter"   type="Intelligencia.UrlRewriter.Configuration.RewriterConfigurationSectionHandler, Intelligencia.UrlRewriter"/>

        3.在web.confg中system.web/httpModules添加(这里是关键,否则就相当于你买了一把枪,却没正式派上用场):       <add name="UrlRewriter" type="Intelligencia.UrlRewriter.RewriterHttpModule, Intelligencia.UrlRewriter"/>

        4.在web.config中添加以下结点作为system.web的兄弟结点(configSource后面是一个相对地址,根据实际情况定):

          <rewriter configSource="URLRewriter.config"/>     5.如果网站需要使用非.aspx后缀的伪静态,如details-1-1.htm、news-1-2.abc等,那么:打开IIS-->右击默认网站-->属性-->主目录-->找到配置按钮-->映射-->点击“插入”-->可执行文件:c:\windows\microsoft.net\framework\v2.0.50727\aspnet_isapi.dll 保存。

        一般完成了上述配置,基本上没啥问题了.发布后,我们怎么看到效果呢?

        伪静态,实际上是站在站长SEO运营的角度上看的,对我们开发人员来说,其实就是一个Url重定向,上面我们做的那些配置,引入dll最终要做的就是拦截用户

        对iis上该网站的请求,然后我们给它一个规则,比如,一般站长认为下面第一个地址比第二个地址更对搜索引擎喜欢:

        (1) http://localhost:10516/html/news/20121104/2.html           (2)http://localhost:10516/news.aspx?year=20121104&type=2

         那么,我们要做的,也就是在上述URLRewrite.config中提供下面的设置:

           <rewrite url="^/html/news/([0-9]+)/([0-9]+).html$"            to="/news.aspx?year=$1&type=$2"            processing="stop" />

        注:有的刚接触的朋友可能要问,上面的$1,$2是啥?  其实很简单,我们要明白,URLWrite组件内部是通过正则表达式来匹配分析这些源请求地址的。既然是正则表达式,那$当然就是正则表达式里面Group对应的参数了,因为没有给参数起名字,所以直接用$1,$2了。

        最后,自己还要提醒各位的是:

         这个是在iis层面进行,无论动态,静态的页面请求(无论是否真有这个页面),都会会通过这一层的处理。即使伪静态出来的页面地址与某个真实地址同时存在,发生冲突,那也照样会走伪静态那个。

  • 相关阅读:
    设计模式之装饰器模式
    设计模式之原型模式
    设计模式之策略模式
    设计模式之适配器模式
    设计模式之注册模式
    wordpress中add_action和add_filter
    工厂模式
    设计模式之命令链模式
    观察者模式
    工厂模式
  • 原文地址:https://www.cnblogs.com/snowhumen/p/2754279.html
Copyright © 2011-2022 走看看