آموزش ساخت و کار با subdomain در حالت لوکال هاست
چهارشنبه 18 اردیبهشت 1392آموزش ساخت و کار با subdomain در حالت لوکال هاست <br/> برای پروژه ای نیاز بود تا از sub-domain استفاده شود. نحوه کار بدین صورت بود که اطلاعات باید بر اساس شهرها بارگذاری میشد؛ برای مثال اگر کاربر آدرس tehran.mysite.com را وارد کرد، اطلاعات مربوط به شهر تهران بارگذاری شود و برای سایر شهرها هم به همین ترتیب.
برای پروژه ای نیاز بود تا از sub-domain استفاده شود. نحوه کار بدین صورت بود که اطلاعات باید بر اساس شهرها بارگذاری میشد؛ برای مثال اگر کاربر آدرس tehran.mysite.com را وارد کرد، اطلاعات مربوط به شهر تهران بارگذاری شود و برای سایر شهرها هم به همین ترتیب. در سرور که روش کار و ساخت ساب دومین کاملا مشخص است. اما برای لوکال باید به چه ترتیب عمل شود؟
مسلما برنامه پیش از آپلود حتما باید روی لوکال تست شود. برای ساخت ساب دومین روی لوکال هاست کافی ست به مسیر زیر رفته و فایل hosts را با دسترسی administrator باز کنید .
[windows drive]:\Windows\System32\drivers\etc
# localhost name resolution is handled within DNS itself. 127.0.0.1 localhost 127.0.0.1 tehran.localhost 127.0.0.1 mashhad.localhost 127.0.0.1 sabzevar.localhost
نکته مهمی که باید حتما توجه شود استفاده از دستور Request.Url.ToString(); است. هنگامیکه برنامه روی هاست در حال اجراست، قادر به برگرداندن مسیر به همراه با نام ساب دومین میباشد، اما این دستور روی لوکال، نام ساب دومین را برنمیگرداند! برای این کار روی لوکال استفاده از روش زیر استفاده کنید:
host = Request.Headers["HOST"].ToLower();
void Application_BeginRequest(object sender, EventArgs e) { string host, url, newUrl; host = Request.Headers["HOST"].ToLower(); //for localhost //host = Request.Url.ToString(); // for server url = Request.Url.PathAndQuery.ToLower(); if (host.EndsWith(".localhost:8001") && (url == "" || url == "/")) { int cityId = City.GetCityIdByCityName(host.Replace(".localhost:8001", "")); newUrl = string.Format("~/postlist/{0}/", cityId); HttpContext.Current.RewritePath(newUrl); return; } }
نکته: در صورتی که در حال استفاده از vpn باشید قادر به دسترسی به subdomainهای خود در حالت لوکال نخواهید بود. پس برای تست برنامه، حتما این مورد را مد نظر داشته باشید.
موفق باشید.- ASP.net
- 2k بازدید
- 1 تشکر