Heutzutage können virtuelle ASP.NET-Hosts im Allgemeinen mehrere Domänennamen binden, aber die über diese Domänennamen geöffneten Seiten sind dieselben. Wie können diese gebundenen Domänennamen dazu gebracht werden, jeweils unterschiedliche Seiten zu öffnen (dh die Funktion von Unterwebsites zu realisieren)? Es ist eigentlich ganz einfach, nur 4 Schritte:
1) Binden Sie mehrere Domänennamen an den virtuellen Host; zum Beispiel: www.abc.com , services.abc.com, support.abc.com.
2) Erstellen Sie mehrere Ordner im Stammverzeichnis der virtuellen Host-Site; zum Beispiel: Services, Support erstellen Sie nicht den WWW-Ordner.
3) Erstellen Sie im vs 2005-Webprojekt dieselben Ordner und fügen Sie unter jedem Ordner eine Datei „default.aspx“ hinzu, zum Beispiel: „services“, „support“.
4) Fügen Sie das Application_BeginRequest-Ereignis in Global.asax hinzu: protected void Application_BeginRequest(object sender, EventArgs e)
{
string sumDomain;
string domain = Request.Url.Host;
// http://localhost hat kein „.“
int i = domain.IndexOf('.');
wenn (i > 0)
{
// Den Teil vor dem ersten „.“ des Domainnamens abrufen (z. B. www.abc.com) (mit Ausnahme des ersten „.“)
sumDomain = domain.Substring(0, i);
// Wenn es nicht „www“ ist, wird es automatisch zu http://www.abc.com/xxx umgeleitet,
//Die URL in der Adressleiste zeigt nicht http://www.abc.com/xxx an, sondern http://xxx.abc.com
if (sumDomain.IndexOf("www") == -1)
{
// Beachten Sie, dass dieser Satz der Schlüssel ist
HttpContext.Current.RewritePath("~/" + sumDomain + Request.Url.PathAndQuery);
}
}
}
Wie wäre es, ist es nicht ganz einfach? Haha, das ist URL-Umschreiben (HttpContext.Current.RewritePath).
URL dieses Artikels: http://www.cnblogs.com/anjou/archive/2006/12/23/601777.html