用的是asp.net webform,在global.asax的application_beginrequest中写的代码
很简单的一个需求,在url中输入http://www.test.com/lci/时,跳转到http://www.test.com/tree/home.aspx
在本地写上这么一句话就OK了
string url = Request.RawUrl.ToLower(); if(url.Contains("/lci")) { Response.Redirect("/tree/home.aspx"); }
可是在IIS上却总是报404找不到资源
原来,如果ASP.NET没有获得处理请求的机会的话,URL重写引擎就不能对输入的网址请求作出判断
lci这个目录在服务器上并不存在,因此会报404错误
解决的办法是在服务器上创建lci目录,并在下面添加一个空的Default.aspx。因为IIS会检查该目录下的文件看是否包含有默认首页文件名(Default.aspx,Default.htm,Default.asp)。
添加好后,就可以正常跳转了。
我这个是比较笨的做法,应该有更好的解决方法的。