当前位置: 代码迷 >> 综合 >> 使用 URLRewriter 重写 asp.net 网址 经验
  详细解决方案

使用 URLRewriter 重写 asp.net 网址 经验

热度:59   发布时间:2023-12-08 13:55:02.0

最近使用URLRewriter 重写了网站的网址,在过程中遇到一些问题。


首先是按照网上的教程把 URLRewriter 整合到网站里,参考:http://www.cnblogs.com/Ferry/archive/2009/06/19/1506770.html

网上有很多教程,博客园这篇是写得比较清楚的。


把 URLRewriter 整合进网站后,

一开始想写一个httpModules ,在输出页面内容的时候把网址都替换了,不过在一个使用 updatepanel 做 ajax 翻页的页面报错了,不能翻页了,只能放弃了。


后来又发现,html页面不能访问了(我用URLRewriter把aspx转成html了),在网上找一下,解决方法也很快出来了

就是加多一个buildProviders 的配置节点

    <compilation debug="true"><assemblies><add assembly="System.Core, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /><add assembly="System.Data.DataSetExtensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /><add assembly="System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" /><add assembly="System.Xml.Linq, Version=3.5.0.0, Culture=neutral, PublicKeyToken=B77A5C561934E089" /></assemblies><buildProviders><add extension=".html" type="System.Web.Compilation.PageBuildProvider" /></buildProviders></compilation>

经过以上配置,我的网站还是不能访问真实的HTML页面,找来找去,终于发现了问题。


原来是网站上的那些HTML页面都是UTF-8编码的文件,但是部署上 URLRewriter 后,就只认 ANSI 编码的HTML文件了。只好写了一个文件编码转换工具来把那些

UTF-8编码的HTML文件转成ANSI编码。


至此,URLRewriter 已成功整合到网站。