|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
我以前很喜欢Serv-U,自从它用Java重写之后我就再也没用过,实在是太慢了,我宁可用IIS搭建FTP,虽然IIS搭建FTP在权限管理上很不灵活。在网上看到,良多伴侣在ASP.NET中做urlrewrite,用的是HttpHandle+Server.Transfer的办法。实在这类办法是毛病的。第一,HttpHandle是完成不了urlrewrite的;第二Server.Transfer是尺度的重定向,基本不是urlrewrite。实在,完成urlrewrite不必本人HttpHandle,也不必本人完成HttpModule,用几行代码就能够轻松完成。
我这里先容的是在假造主机上,假造主机分歧于本人的服务器,你是没有权限往修正IIS,也没有权限往安装iisrewrite之类的IIS插件。可是我们仍旧能够轻松完成必要的功效。
详细做法以下:翻开global.asax.cs,定位到protectedvoidApplication_BeginRequest(Objectsender,EventArgse)。从办法名我想也能猜到它是做甚么的。输出以下代码:
protectedvoidApplication_BeginRequest(Objectsender,EventArgse)
{
stringoldUrl=HttpContext.Current.Request.RawUrl;
stringpattern=@"^(.+)default/(d+).ASPx(?.*)*___FCKpd___0quot;;
stringreplace="$1default.aspx?id=$2";
if(Regex.IsMatch(oldUrl,pattern,RegexOptions.IgnoreCaseRegexOptions.Compiled))
{
stringnewUrl=Regex.Replace(oldUrl,pattern,replace,RegexOptions.Compiled
RegexOptions.IgnoreCase);
this.Context.RewritePath(newUrl);
}
}有了上边这段代码,我会见一个相似:.../default/123.ASPx的网址,固然这个网址在我的电脑上不存在,它就会被定向到:.../default.aspx?id=123。
固然,使用功效壮大的正则表达式,你能够恣意依照本人的必要来重写url,
这统统都是在服务器端冷静的举行,在客户端是不会有任何发觉的。因为是在假造主机上,我们只能重定向.ASPx文件,假如是本人的服务器,只需把后缀名在IIS中注册一下,就能够完成恣意后缀名的处置。好比你能够注册一个*.myweb如许的范例,如许他人会见default/456.myweb时,你能够把它重定向到default.aspx?id=456。总之一句话,只需你能想到.NET就能够帮你完成,而且这统统不必要几的代码。
语言是不是不是最重要的? |
|