日期:2014-05-17  浏览次数:20385 次

用Global.asax文件实现Url重写
我在Global.asax的Application_BeginRequest里加入代码
            String oldUrl = System.Web.HttpContext.Current.Request.Url.ToString();
            if (oldUrl.Contains("aaa"))  
            {
               
                HttpContext.Current.RewritePath("~/Default.aspx");
            }
调试时,输入网址aaa/a.htm可以跳转到Default.aspx页面,但发布到IIS上,却不会跳转到Default.aspx页面。我用的是win7 + iis7.5,开发环境为vs2010,请问这个可以怎么解决?

------解决方案--------------------
引用:
我在Global.asax的Application_BeginRequest里加入代码
            String oldUrl = System.Web.HttpContext.Current.Request.Url.ToString();
            if (oldUrl.Contains("aaa"))  
            {
               
                HttpContext.Current.RewritePath("~/Default.aspx");
            }
调试时,输入网址aaa/a.htm可以跳转到Default.aspx页面,但发布到IIS上,却不会跳转到Default.aspx页面。我用的是win7 + iis7.5,开发环境为vs2010,请问这个可以怎么解决?


7.5 应该是有映射的,看看是否是经典的?调成集成的试试!
------解决方案--------------------
部署之后,只能处理aspx、ashx、asmx等等后缀。

.htm后缀的请求根本不给global.asax处理,连asp.net都捞不到这个处理。
------解决方案--------------------
可以看一下手工配置方式: http://msdn.microsoft.com/zh-cn/magazine/dd347546.aspx#id0070014

手工配置修改了IIS行为,才行。