使用UrlRewritingNet实现URL重写时遇到的问题?
我想实现类似WordPress的那种以文章名为文件名的重写.
就例如有一篇文章的标题为Hello world 其原始地址可能为article.aspx?id=1
但我想利用UrlRewritingNet这个组件..将URL重写为 Hello+world.html 或Hello+world.aspx.
当然,该文件名是在发表文章时就已经存在数据库里面的......
现在碰到的问题是不知要在何时注册该重写规则~
我尝试在BeginRequest里面写下以下代码:
RegExRewriteRule rule = new RegExRewriteRule();
//rule.VirtualUrl = "^~/haha/haha1.aspx ";
rule.VirtualUrl = ((HttpApplication)sender).Context.Request.Path;
rule.DestinationUrl = "~/Default2.aspx?a=10 ";
rule.IgnoreCase = true;
rule.Rewrite = RewriteOption.Application;
rule.Redirect = RedirectOption.None;
rule.RewriteUrlParameter = RewriteUrlParameterOption.ExcludeFromClientQueryString;
UrlRewriting.AddRewriteRule( "ttt ", rule);
会发现.随便输入一个地址的话,第一次将会找不到资源.必须刷新一次才能转到Default2.aspx的页面..原因似乎是第一次进入的时候.名为ttt的规则还没被创建..第二次刷新,才能够正常重写
------解决方案--------------------一般是在webconfig中通过正则表达式进行匹配的
------解决方案--------------------好像是这样的哦!
如果你有1万多个页面,那真的要写1万多个!
如果是同一页面,也就是说同一文章,只是参数不同,那可以通过正则表达式进行匹配
------解决方案--------------------不懂,关注一下