关于伪静态问题
.net生成的文件名是aspx.我想在URL上把aspx改成html
- C# code
protected override void Render(HtmlTextWriter writer) { string name = Request.Url.AbsolutePath.Substring(1, Request.Url.AbsolutePath.Length - 1).Replace("aspx", "html"); name = name.ToLower().Replace("aspx/", ""); string newurl = ""; if (name.IndexOf("/") > 0) { newurl = Server.MapPath("/") + name; } else { newurl = Server.MapPath("/") + name; } MemoryStream ms = new MemoryStream(); StreamWriter sww = new StreamWriter(ms); StreamWriter swr = new StreamWriter(newurl); HtmlTextWriter htmlw = new HtmlTextWriter(swr); base.Render(htmlw); htmlw.Flush(); htmlw.Close(); string strLL = System.Text.Encoding.UTF8.GetString(ms.ToArray()); Response.Write(strLL); string tourl = Request.Url.AbsoluteUri.ToLower().Replace(".aspx", "htm").Replace("aspx/", ""); Response.Redirect(tourl, true); }
这是我网上找到的一种方法。报一个映射错误.请问高手这个方法可以做伪静态用么
[解决办法]
搜一下,有很多料可考
篇的不
http://www.cnblogs.com/xiachufeng/archive/2010/02/04/1663866.html
[解决办法]
LZ的做法用到了好几个Strame,并且还用到了Response.Redirect(),实在不妥
一般都是在HttpModule中截获请求,利用虚URL映射得到真实URL
http://www.cnblogs.com/NicholasLee/archive/2010/11/10/1873750.html
另外IIS7中已经自带了这个扩展模块
[解决办法]
[解决办法]
- XML code
<section name="RewriterConfig" type="URLRewriter.Config.RewriterConfigSerializerSectionHandler, URLRewriter" />configSections节点后<RewriterConfig> <Rules> <RewriterRule> <LookFor><![CDATA[~/(\d+)\.htm]]></LookFor> <SendTo><![CDATA[~/index.aspx?pageNum=$1]]></SendTo> </RewriterRule> </Rules></RewriterConfig>system.web节点里<httpModules><add type="URLRewriter.ModuleRewriter, URLRewriter" name="ModuleRewriter" /></httpModules>