首页 新闻 会员 周边

url重写实现,动态二级域名

0
悬赏园豆:80 [已关闭问题] 关闭于 2009-07-29 14:25

通过修改微软URLRewriter组建(根据江振宇blog中的介绍)实现了

 <RewriterRule>
        <LookFor>http://(\w*)\.dilinlin\.com/</LookFor>
        <SendTo>~/blog/user/$1/index.html</SendTo>
 </RewriterRule>

这种效果 ,但是

 <RewriterRule>
        <LookFor>http://(\w*)\.dilinlin\.com/(\w*)\.html</LookFor>
        <SendTo>~/blog/user/$1/$2.html</SendTo>
</RewriterRule>
<RewriterRule>
        <LookFor>http://(\w*)\.dilinlin\.com/archives_(\w*)_(\w*)\.html</LookFor>
        <SendTo>~/blog/user/$1/archives/$2/$3.html</SendTo>
</RewriterRule>

这两种效果 总是出现404错误。查阅了很多资料,还是找不出问题所在,专门测试了组件在类BaseModuleRewriter.cs里BaseModuleRewriter_AuthorizeRequest()方法修改 Rewrite(app.Request.Url.ToString(), app);  改为

Rewrite("http://net.dilinlin.com/archives_2008_47038.html", app);    

这时地址栏路径输入成类似   <LookFor>http://(\w*)\.dilinlin\.com/</LookFor>
的路径,则可以正确重写到<SendTo>~/blog/user/$1/archives/$2/$3.html</SendTo>
,可见 应该组件没问题  ,问题到底出在哪里呢?请高手 指点。

如果可以的话希望可以考虑到css样式问题 和表单提交问题谢谢

nana1212的主页 nana1212 | 初学一级 | 园豆:155
提问于:2009-07-14 15:06
< >
分享
所有回答(2)
0

另外一个方案是ISAPI rewrite

http://www.weijingtai.com/2009/04/08/isapi-rewrite/

相比微软URLRewriter, 有如下优点:

第一:效率较高。

第二:对html解析要好很多

也可以参考:

http://www.cnblogs.com/notus/archive/2007/03/13/673222.html

http://www.cnblogs.com/teddyma/archive/2006/09/11/500790.html

也可以自己搜:

http://zzk.cnblogs.com/s?w=url+%E9%87%8D%E5%86%99

邀月 | 园豆:25475 (高人七级) | 2009-07-14 15:18
0

iis6?

iis6的话,对于.html请求默认是不采用asp.net 接管的,直接判断该文件是否存在,存在返回文件,不存在返回404

试试修改.html注册的请求处理程序为asp.net的isapi,看有没有用

兜小神 | 园豆:120 (初学一级) | 2009-07-14 15:26
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册