很久以前做过这个试验,今天又把它重试了一下。有点小意思。首先,必须在IIS/默认网站/属性/主目录/配置/映射/添加,新建一个自定义的文件扩展名,执行文件选上C:/Windows/Microsoft.Net/Framework/版本号/aspnet_isapi.dll,记得要自己输入,copy的不行,会不能点确定。
再来就是website的扩展名了,有两种方式:
方法一,是直接改.aspx扩展名,改成你想要的,还要在web.config里添加这个配置。之后就可以访问啦!
<
compilation debug
=
"
true
"
>
< buildProviders >
< add extension = " .kangnoz " type = " System.Web.Compilation.PageBuildProvider " />
</ buildProviders >
</ compilation >
< buildProviders >
< add extension = " .kangnoz " type = " System.Web.Compilation.PageBuildProvider " />
</ buildProviders >
</ compilation >
方法二,不要改.aspx扩展名,添加一个Global.asax文件,加上下面这个
protected
void
Application_BeginRequest(Object sender, EventArgs E)
... {
string url = Context.Request.RawUrl.ToLower();
if (url.IndexOf(.kangnoz) > 0)
...{
url = url.Replace(".kangnoz",".aspx");
Context.RewritePath(url);
}
}
... {
string url = Context.Request.RawUrl.ToLower();
if (url.IndexOf(.kangnoz) > 0)
...{
url = url.Replace(".kangnoz",".aspx");
Context.RewritePath(url);
}
}
就是在request放送到服务器处理前把它rewrite一下,改了request的扩展名成.aspx,这样你用page.aspx和用page.kangnoz访问都可以。而方法一只能用page.kangnoz访问。