ASP.NET下用URLRewriter重写二级域名

  这里要求对域名进行重写,实现http://1234.abc.com/ 到 ~/Defa.ASPx?id=1234的重写。

  第一:域名

  首先域名要支持泛解悉,就是域名解悉的主机名为星号*,例:*.abc.com。如下图


  这样能保证你在浏览器地址栏输入任何前缀,DNS都会把它们指向到你指定的IP地址上。

  第二:IIS设置(Win2003 + IIS 6为例)

  (1)网站必须为Web服务器的默认站点,即端口号为80,主机头为空的站点。如下图所示。


  该站点接收所有对该服务器的HTTP请求(其它设置为主机头的站点除外)。所以任何二级域名访问该服务器都会由该站点进行处理。

  (2)另外要在站点的“通配符应用程序映射”列表中添加ASP.NET的Web请求处理程序ASPNET_isapi.dll。如下图所示。


  在这里的设置,是让该站点接到的所有请求都交给ASPNET_isapi.dll处理。

  第三:修改Microsoft的URLRewriter。

  运行开源项目URLRewriter。这里需要修改两个地方:

  (1)BaseModuleRewriter.cs类

 protected virtual void BaseModuleRewriter_AuthorizeRequest(object sender, EventArgs e)   
{
HttpApplication app
= (HttpApplication) sender;
//Rewrite(app.Request.Path, app);
Rewrite(app.Request.Url.AbsoluteUri, app); // ## ## ## 这里修改了
}

NET技术ASP.NET下用URLRewriter重写二级域名,转载需保留来源!

郑重声明:本文版权归原作者所有,转载文章仅为传播更多信息之目的,如作者信息标记有误,请第一时间联系我们修改或删除,多谢。