في الوقت الحاضر، يمكن لمضيفي ASP.NET الظاهريين بشكل عام ربط أسماء نطاقات متعددة، ولكن الصفحات المفتوحة من خلال أسماء النطاقات هذه هي نفسها. كيفية جعل أسماء النطاقات المرتبطة هذه تفتح صفحات مختلفة على التوالي (أي لتحقيق وظيفة مواقع الويب الفرعية)؟ الأمر في الواقع بسيط جدًا، فقط 4 خطوات:
1) ربط عدة أسماء نطاقات بالمضيف الظاهري، على سبيل المثال: www.abc.com ، وservices.abc.com، وsupport.abc.com.
2) قم بإنشاء عدة مجلدات في الدليل الجذر لموقع المضيف الظاهري، على سبيل المثال: الخدمات والدعم لا تقم بإنشاء مجلد www.
3) ضمن مشروع الويب vs 2005، أنشئ نفس المجلدات وأضف ملف default.aspx ضمن كل مجلد، على سبيل المثال: الخدمات والدعم.
4) أضف حدث Application_BeginRequest في Global.asax: Application_BeginRequest (object sender, EventArgs e) فارغ محمي
{
سلسلة مجموع المجال؛
مجال السلسلة = Request.Url.Host؛
// http://localhost لا يحتوي على "."
int i = domain.IndexOf('.');
إذا (أنا > 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