[转载]asp.net泛二级域名解析 – 好工具站长分享平台.
最近项目上需要泛二级域名解析,参考了网上的方案,然后结合自己的需求做了一个示例。需求如下:
1、我们的域名是domain.com,服务器用一个相同的IP地址;
2、www.domain.com 指向服务器中我们自己的index.aspx;
3、xxx.domain.com 指向服务器中客户的site.aspx;
具体做法如下:
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 + “$”;
添加:
<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>