ASP.NET用URLRewriter.dll实现伪静态

<configSections>

<!--用于指定配置节"RewriterConfig"的处理程序类的名称为”URLRewriter.Config.RewriterConfigSerializerSectionHandler”,该类存在于bin目录下的URLRewriter .dll文件中-->

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

  <httpModules>
         <add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" />

 </httpModules>

  <RewriterConfig>
    <Rules>
      <RewriterRule>

        <!--表示,用户输入的url,d(\d+)\.aspx是 url中文件名匹配的正则表达式(此处为字母d开头,后面跟一个或多个数字,并以.aspx结尾。用户也可根据自己的需要自行设定)。-->
        <LookFor>~/d(\d+)\.aspx</LookFor>

        <!--表示当服务器接收到符合上面条件的请求后如何重写url。此处表示访问defalutl.aspx并传入参数id,其值$1将用用户请求的文件名中的第一个数字来表示。
        例如用户输入 hostname/d11.aspx,服务器会把他重写为http://hostname/default.aspx?id=11。换句话说用户输入http: //hostname/d11.aspx,实际访问的是
        http://hostname/default.aspx?id=11。这样就起到了隐藏真实文件名,并便于用户记忆的作用。-->
        <SendTo>~/default.aspx?id=$1</SendTo>
      </RewriterRule>

      <RewriterRule>
        <LookFor>~/news_ny_(.*).html</LookFor>
        <SendTo>~/news_ny.aspx?newsId=$1</SendTo>
      </RewriterRule>
      <RewriterRule>
        <LookFor>~/news_(.*)_(.*).html</LookFor>
        <SendTo>~/news.aspx?newsTypeId=$1&amp;newsWhere=$2</SendTo>
      </RewriterRule>

    <RewriterRule>
        <LookFor>~/news.html</LookFor>
        <SendTo>~/news.aspx</SendTo>
      </RewriterRule>
    </Rules>
  </RewriterConfig>

用到AspNetPager分页控件的页面可以将AspNetPager的 UrlPaging设为false ,变相的解决分页控件显示.aspx页面问题。也可以向访问页面这样,一步一步配置,实现.html的伪静态。

对于两个参数的规则  “&” 符号要写成 “&amp;“ 用的时候第二个参数如果用不到空着即可,但是必须写"_" 如news_xwgg_.html

IIS 7.5 配置伪静态
httpHandler实现.Net无后缀名Web访问
     1)首先新建一个应用程序池,名称任意,比如:nettest,托管管道模式先暂时设置为集成模式,等下面的一系列设置完成之后再设置成经典模式;
     2)部署好站点,并将此站点的应用程序池设置为nettest;
     3)选中站点,切换到功能试图,找到 "服务器组件"-> "处理程序映射",双击之后,在打开窗口右侧的操作栏目下做如下设置:
     4)"添加脚本映射":请求路径 .html ,可执行文件选择 C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll ,如果是4.0,则为C:\Windows\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll,名称随意;
     5)"添加通配符脚本映射":请求路径 * ,可执行文件为:C:\Windows\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll,名称随意;
     6)"添加托管处理程序":请求路径 * ,可执行文件:System.Web.UI.PageHandlerFactory,名称随意;
     7)打开站点切换到功能试图,找到 "服务器组件"->"模块",双击之后,在打开窗口右侧的操作栏目中,点击"添加托管模块",类型
URLRewriter.ModuleRewriter,并且把"仅针对向asp.net 应用程序或托管处理程序发出请求调用" 选中;
     8)最后,找到我们第一步建立的应用程序池nettest,将托管管道模式设置为经典模式。
     以上完成之后,即可实现IIS 7.5下的伪静态操作。
 
2003 IIS  配置伪静态
IIS配置:网站->属性->目录->配置(G)...->映射->应用程序扩展->添加
可执行文件:c:"windows"microsoft.net"framework"v2.0.50727"aspnet_isapi.dll
扩展名:.html
动作:限制为 GET,HEAD,POST,DEBUG
脚本引擎:选中
确认文件是否存在:不选

济南做网站

原文地址:https://www.cnblogs.com/jkyweb/p/2664426.html