在Global.asax.cs文件中进行URL重写,然后代码运行的时候没问题,网站发布出来在iis服务器上就报404.0找不到文件了,
把.aspx文件重写成了.html文件报404.
如果把.aspx文件重写成.aspx(把参数什么的进行整理)则不报错.
目前认为是需要进行IIS映射配置,服务器是server2008sp1,IIS是7.0.
具体需要怎样映射,跪求.
Global.asax.cs中的重写部分
1 protected void Application_BeginRequest(Object sender, EventArgs e) 2 { 3 string url = Request.AppRelativeCurrentExecutionFilePath; 4 Regex regex = new Regex(@"~/([A-Za-z]+).html"); 5 Regex regex1 = new Regex(@"~/([A-Za-z]+)_(\d+).html"); 6 Regex regex2 = new Regex(@"~/([A-Za-z]+)_(\d+)_(\d+).html"); 7 if (regex.IsMatch(url)) 8 { 9 string realPath = regex.Replace(url, @"/$1.aspx"); 10 Context.RewritePath(realPath); 11 } 12 else if (regex1.IsMatch(url)) 13 { 14 string realPath = regex1.Replace(url, @"/$1.aspx?pag=$2"); 15 Context.RewritePath(realPath); 16 } 17 else if (regex2.IsMatch(url)) 18 { 19 string realPath = regex2.Replace(url, @"/$1.aspx?cat=$2&pag=$3"); 20 Context.RewritePath(realPath); 21 } 22 }
你这3个正则顺序判断有误吧,越复杂的应该放到最前面做判断。应该是regex2,regx1.regex
谢谢大神指点,URL重写的映射应该怎么弄呢?跪求
@ToBug: 伪静态:http://www.cnblogs.com/hongz29299/p/5121959.html
@唯我独萌: 谢谢大神,这种配置方法我也会,现在纠结上面写的那种呢
要看404是iis报的还是运行时报的.IIS报的就得在iis配置运行时处理所有请求.
是IIS报的:
你要在iis中加上针对html这种后缀的请求的映射
大神,我现在就是不知道该怎么映射才行
我刚刚解决了!
刚注册的账号稍后和你说