0

我需要以这样的方式进行 URL 重写

如果我的请求是 abc.domain.com,则应处理请求,例如

domain.com/default.aspx?cid=abc

例如,如果我提供.domain.com,则请求应假定为 domain.com/default.aspx?cid=

我不需要单独给 abc 子域可以是任何.. 但我的请求应该被处理,假设它是查询字符串值。

我的域在共享主机中...

任何人都可以在这个中发光..

4

1 回答 1

1

必须在 DNS 服务器和 IIS 上创建和配置子域。

设置站点以接受该子域后,您可以直接使用 将 RewritePath子域映射到具有不同参数的特定文件。

Application_BeginRequest您开始检查并找到子域并将路径重写为:

protected void Application_BeginRequest(Object sender, EventArgs e)
{   
    var SubDomain = GetSubDomain(HttpContext.Current.Request.Host);
    // this is a simple example, you can place your variables base on subdomain
    if(!String.IsNullOrEmpty(SubDomain))
       RewritePath(HttpContext.Current.Request.Path + SubDomain + "/", false);  
}

// from : http://madskristensen.net/post/Retrieve-the-subdomain-from-a-URL-in-C.aspx
private static string GetSubDomain(Uri url)
{
  string host = url.Host;
  if (host.Split('.').Length > 1)
  {
    int index = host.IndexOf(".");
    return host.Substring(0, index);
  }

  return null;
}

类似:
如何将所有对特定域的请求重新映射到 ASP.NET 中的子目录
将网页请求重定向到默认子文件夹
从 C# 中的 URL 检索子域

于 2013-02-21T09:05:59.897 回答