[转载]asp.net泛二级域名解析

[转载]asp.net泛二级域名解析 – 好工具站长分享平台.

最近项目上需要泛二级域名解析,参考了网上的方案,然后结合自己的需求做了一个示例。需求如下:

1、我们的域名是domain.com服务器用一个相同的IP地址;

2、www.domain.com 指向服务器中我们自己的index.aspx;

3、xxx.domain.com 指向服务器中客户的site.aspx;

4、我们自己的页面和客户的页面都在一个网站项目下;

 

具体做法如下:

1、引用微软URLRewriter项目,并修改其中BaseModuleRewriter.cs和ModuleRewriter.cs的源代码;

 

protected virtual void BaseModuleRewriter_AuthorizeRequest(object sender, EventArgs e) 方法中:

Rewrite(app.Request.Path, app);

修改为:

Rewrite(app.Request.Url.AbsoluteUri, app);

 

protected override void Rewrite(string requestedPath, System.Web.HttpApplication app) 方法中:

string lookFor = “^” + RewriterUtils.ResolveUrl(app.Context.Request.ApplicationPath, rules[i].LookFor) + “$”;

修改为:

string lookFor = “^” + rules[i].LookFor + “$”;

2、修改网站项目的web.config文件

添加:

<configSections>

   <section name=”RewriterConfig” type=”URLRewriter.Config.RewriterConfigSerializerSectionHandler,URLRewriter” />
 </configSections>

 

<RewriterConfig>
   <Rules>
     <RewriterRule>
       <LookFor>http://www\.domain\.com/</LookFor>
       <SendTo>~/index.aspx</SendTo>
     </RewriterRule>
   </Rules>
   <Rules>
     <RewriterRule>
       <LookFor>http://([a-zA-Z|0-9]+)\.domain\.com/</LookFor>
       <SendTo>/site.aspx?code=$1</SendTo>
     </RewriterRule>
   </Rules>

</RewriterConfig>

在system.web节中加入

<httpModules>

<add type=”URLRewriter.ModuleRewriter, URLRewriter” name=”ModuleRewriter”/>
</httpModules>

3、修改域名DNS,将*.domain.com的域名指向服务器的IP地址;

4、配置IIS,去掉网站主机头,然后添加aspnet_isapi.dll的映射处理程序;

特别注意:如果是IIS7以上版本,请将网站应用程序池类型修改为“经典”;

赞(0) 打赏
分享到: 更多 (0)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

微信扫一扫打赏