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

【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列:基于图像分类模型对图像进行分类
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 25岁的心里话
· 闲置电脑爆改个人服务器(超详细) #公网映射 #Vmware虚拟网络编辑器
· 基于 Docker 搭建 FRP 内网穿透开源项目(很简单哒)
· 零经验选手,Compose 一天开发一款小游戏!
· 通过 API 将Deepseek响应流式内容输出到前端