De nos jours, les hôtes virtuels ASP.NET peuvent généralement lier plusieurs noms de domaine, mais les pages ouvertes via ces noms de domaine sont les mêmes. Comment faire en sorte que ces noms de domaine liés ouvrent respectivement différentes pages (c'est-à-dire réaliser la fonction de sous-sites) ? C'est en fait très simple, seulement 4 étapes :
1) Liez plusieurs noms de domaine à l'hôte virtuel ; par exemple : www.abc.com , services.abc.com, support.abc.com.
2) Créez plusieurs dossiers dans le répertoire racine du site hôte virtuel ; par exemple : services, support ne créez pas le dossier www ;
3) Sous le projet Web vs 2005, créez les mêmes dossiers et ajoutez un fichier default.aspx sous chaque dossier par exemple : services, support ;
4) Ajoutez l'événement Application_BeginRequest dans Global.asax : protected void Application_BeginRequest (object sender, EventArgs e)
{
chaîne sumDomain ;
domaine de chaîne = Request.Url.Host ;
// http://localhost n'a pas "."
int i = domaine.IndexOf('.');
si (je > 0)
{
// Récupère la partie avant le premier "." du nom de domaine (par exemple, www.abc.com) (à l'exclusion du premier ".")
sumDomain = domain.Substring(0, i);
// Si ce n'est pas "www", il sera automatiquement redirigé vers http://www.abc.com/xxx ,
//L'URL dans la barre d'adresse n'affichera pas http://www.abc.com/xxx , mais affichera http://xxx.abc.com
si (sumDomain.IndexOf("www") == -1)
{
// Attention, cette phrase est la clé
HttpContext.Current.RewritePath("~/" + sumDomain + Request.Url.PathAndQuery);
}
}
}
Et si, n'est-ce pas très simple ! Haha, c'est une réécriture d'URL (HttpContext.Current.RewritePath).
URL de cet article : http://www.cnblogs.com/anjou/archive/2006/12/23/601777.html