ปัจจุบันโฮสต์เสมือน ASP.NET โดยทั่วไปสามารถผูกชื่อโดเมนได้หลายชื่อ แต่เพจที่เปิดผ่านชื่อโดเมนเหล่านี้จะเหมือนกัน จะทำให้ชื่อโดเมนที่ถูกผูกไว้เหล่านี้เปิดหน้าต่างๆ ตามลำดับได้อย่างไร (นั่นคือ เพื่อให้ทราบถึงการทำงานของเว็บไซต์ย่อย) จริงๆ แล้วง่ายมาก เพียง 4 ขั้นตอน:
1) เชื่อมโยงชื่อโดเมนหลายชื่อเข้ากับโฮสต์เสมือน เช่น www.abc.com , services.abc.com, support.abc.com
2) สร้างหลายโฟลเดอร์ในไดเร็กทอรีรากของไซต์โฮสต์เสมือน เช่น บริการ การสนับสนุน อย่าสร้างโฟลเดอร์ www
3) ภายใต้โครงการ vs 2005 Web ให้สร้างโฟลเดอร์เดียวกันและเพิ่มไฟล์ default.aspx ไว้ใต้แต่ละโฟลเดอร์ เช่น บริการ การสนับสนุน
4) เพิ่มเหตุการณ์ Application_BeginRequest ใน Global.asax: protected void Application_BeginRequest(ผู้ส่งวัตถุ EventArgs e)
-
สตริง sumDomain;
โดเมนสตริง = Request.Url.Host;
// http://localhost ไม่มี "."
int i = โดเมน.ดัชนีของ('.');
ถ้า (ฉัน > 0)
-
// รับส่วนที่อยู่หน้า "." แรกของชื่อโดเมน (เช่น www.abc.com) (ไม่รวม "." ตัวแรก)
sumDomain = domain.Substring(0, i);
// หากไม่ใช่ "www" ระบบจะเปลี่ยนเส้นทางไปที่ http://www.abc.com/xxx โดยอัตโนมัติ
//URL ในแถบที่อยู่จะไม่แสดง http://www.abc.com/xxx แต่จะแสดง http://xxx.abc.com
ถ้า (sumDomain.IndexOf("www") == -1)
-
// หมายเหตุ ประโยคนี้คือกุญแจสำคัญ
HttpContext.Current.RewritePath("~/" + sumDomain + Request.Url.PathAndQuery);
-
-
-
แล้วมันไม่ง่ายเลยเหรอ ฮ่าๆ นี่คือการเขียน URL ใหม่ (HttpContext.Current.RewritePath)
URL ของบทความนี้: http://www.cnblogs.com/anjou/archive/2006/12/23/601777.html