Hoy en día, los hosts virtuales ASP.NET generalmente pueden vincular varios nombres de dominio, pero las páginas abiertas a través de estos nombres de dominio son las mismas. ¿Cómo hacer que estos nombres de dominio vinculados abran páginas diferentes respectivamente (es decir, para realizar la función de subsitios web)? En realidad es muy sencillo, sólo 4 pasos:
1) Vincular varios nombres de dominio al host virtual, por ejemplo: www.abc.com , servicios.abc.com, support.abc.com.
2) Cree varias carpetas en el directorio raíz del sitio de host virtual, por ejemplo: servicios, soporte, no cree la carpeta www.
3) En el proyecto web vs 2005, cree las mismas carpetas y agregue un archivo default.aspx debajo de cada carpeta, por ejemplo: servicios, soporte;
4) Agregue el evento Application_BeginRequest en Global.asax: protected void Application_BeginRequest (remitente del objeto, EventArgs e)
{
cadena sumaDominio;
dominio de cadena = Solicitud.Url.Host;
// http://localhost no tiene "."
int i = dominio.IndexOf('.');
si (yo > 0)
{
// Obtiene la parte antes del primer "." del nombre de dominio (por ejemplo, www.abc.com) (excluyendo el primer ".")
sumDomain = domain.Substring(0, i);
// Si no es "www", redirigirá automáticamente a http://www.abc.com/xxx ,
// La URL en la barra de direcciones no mostrará http://www.abc.com/xxx , pero mostrará http://xxx.abc.com
si (sumaDominio.IndexOf("www") == -1)
{
// Nota, esta oración es la clave
HttpContext.Current.RewritePath("~/" + sumDomain + Request.Url.PathAndQuery);
}
}
}
¿Qué te parece? ¿No es muy simple? Jaja, esto es reescritura de URL (HttpContext.Current.RewritePath).
URL de este artículo: http://www.cnblogs.com/anjou/archive/2006/12/23/601777.html