URLRewriter控件制作伪静态示例

第一步,将URLRewriter.dll拷贝至bin目录。
第二步,配置web.config,注册dll并编写规则,如下:
        <configSections>
            <section name="RewriterConfig" requirePermission="false" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter" />
        </configSections>

        <RewriterConfig>
        <Rules>
          <RewriterRule>
            <LookFor>~/product/ProductInfo/(\d{0,999999})\.html</LookFor>
            <SendTo>~/product/ProductInfo.aspx?id=$1</SendTo>
          </RewriterRule>
          <RewriterRule>
            <LookFor>~/product/ProductList/(\d{0,999999})\.html</LookFor>
            <SendTo><![CDATA[~/product/ProductList.aspx?type=Category&ID=$1]]></SendTo>
          </RewriterRule>
          <RewriterRule>
            <LookFor>~/product/ProductList/(\d{0,999999})/(\d{0,999999})/([\S]+)/(\d{0,999999})</LookFor>
            <SendTo><![CDATA[~/product/Productlist.aspx?CategoryID=$1&ProductName=$2&txtKey=$3&Page=$4]]></SendTo>
          </RewriterRule>
          <RewriterRule>
            <LookFor>~/product/aList/(\d{0,999999})\.html</LookFor>
            <SendTo><![CDATA[~/Product/aList.aspx?type=Category&CategoryID=$1]]></SendTo>
          </RewriterRule>
          <RewriterRule>
            <LookFor>~/News/ShowInfo/(\d{0,999999})/(\d{0,999999})\.html</LookFor>
            <SendTo><![CDATA[~/News/ShowInfo.aspx?ID=$1&CategoryID=$2]]></SendTo>
          </RewriterRule>
          <RewriterRule>
            <LookFor>~/News/infolist/(\d{0,999999})\.html</LookFor>
            <SendTo>~/News/infolist.aspx?CategoryID=$1</SendTo>
          </RewriterRule>
          <RewriterRule>
            <LookFor>~/News/infolist/(\d{0,999999})/([\S]+)/(\d{0,999999})</LookFor>
            <SendTo><![CDATA[~/News/infolist.aspx?CategoryID=$1&newsKey=$2&Page=$3]]></SendTo>
          </RewriterRule>
          <RewriterRule>
            <LookFor>~/Company/Company_Browse/(\d{0,999999})\.html</LookFor>
            <SendTo>~/Company/Company_Browse.aspx?id=$1</SendTo>
          </RewriterRule>
          <RewriterRule>
            <LookFor>~/Company/Company_Browse_job/(\d{0,999999})\.html</LookFor>
            <SendTo>~/Company/Company_Browse_job.aspx?id=$1</SendTo>
          </RewriterRule>
          <RewriterRule>
            <LookFor>~/Company/Company_Browse_us/(\d{0,999999})\.html</LookFor>
            <SendTo>~/Company/Company_Browse_us.aspx?id=$1</SendTo>
          </RewriterRule>
        </Rules>
      </RewriterConfig>
      <system.web>
    //将dll添加到httpHandlers和httpModules
    <httpHandlers>
      <add verb="*" path="*.aspx" type="URLRewriter.RewriterFactoryHandler, URLRewriter" />
    </httpHandlers>
    <httpModules>
      <add name="ModuleRewriter" type="URLRewriter.ModuleRewriter,URLRewriter" />
    </httpModules>
   
    第三步,完成web.config配置以后,向IIS服务器添加用于处理web请求的处理程序映射,如图:
   



附:通过web.config添加aspnet_isapi.dll方法:
比如我们要映射后缀为 .htm
在<configuration>节点下添加
<system.webServer>
        <handlers>
            <add name="htm" path="*.htm" verb="*" modules="IsapiModule" scriptProcessor="%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_isapi.dll" resourceType="Unspecified" preCondition="classicMode,runtimeVersionv2.0,bitness32" />
        </handlers>
    </system.webServer>

     第四步,完成以上工作以后,就可以在浏览器地址中输入定义了规则的静态地址访问页面了。如图:

posted @   skybirdzw  阅读(286)  评论(0编辑  收藏  举报
编辑推荐:
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
阅读排行:
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端
点击右上角即可分享
微信分享提示