چگونه با Wildcard DNS و برنامه نویسی می توان ساب دامنه ایجاد نمود؟

ایجاد زیر دامنه (Subdomain) توسط برنامه نویسی (Wildcard DNS)

راه اندازی بلاگ ها و شبکه های اجتماعی مجازی مستلزم وجود زیردامنه های متعدد و متغیر است. ایجاد Subdomain از طریق کدنویسی راهکار مناسبی می باشد. آشنایی با کدنویسی مربوطه ( یا در شرایطی استفاده از URL Rewriting) و DNS Record لازمه استفاده از این قابلیت می باشد.

در این روش ، بازدیدکننده سایت شما با وارد کردن یک زیردامنه (subdomain) در url ، "user.yourdomain.com" بدون مشاهده تغییری در ظاهر URL به فلدر مورد نظر هدایت میشود ، به طور مثال برای دامین در بلاگ yourdomain تغییری که باید صورت پذیرد به صورت زیر می باشد:

http://userblog.yourdomain به  http://yourdomain/userblog

در صورتیکه در آدرس بار همان آدرس "http://userblog.yourdomain" نمایش داده خواهد شد. در اصل با توجه به تنظیمات DNS و کدهای نوشته شده عمل rewrite و هدایت به صورت پنهانی صورت خواهد پذیرفت.

 

روش کار در سرویس های میزبانی 2003 ایران هاست به شرح ذیل می باشد :

گام اول : تهیه Dedicated IP

ابتدا برای پیاده سازی به یک IP اختصاصی نیاز خواهید داشت ، تا درخواست هایی را که برای هر زیر دامنه از سایت شما ارسال می شود را به روت سایت مربوطه ارجاع دهد. در ایران هاست میتوانید با هزینه پرداخت هزینه درج شده در سایت نسبت به تهیه  Dedicated IP اقدام نمایید.

گام دوم : تنظیمات DNS

بعداز تهیه dedicated IP باید رکورد وایلدکارت ( * ) را در Zone Editor DNS هاست خود برای آی پی اختصاصی که تهیه نموده اید ، ویراش نمایید. لذا ابتدا از طریق آدرس cp.yourdomain  ( به جای yourdomain نام دامین خود را وارد نمایید ) یا cp.iranhost.com  و اطلاعات مربوطه وارد کنترل پنل هاست خود شوید. سپس روی گزینه domains و سپس نام دامین خود کلیک نمایید. در صفحه لود شده آیکون DNS Zone editor  را انتخاب نموده و سپس روی نام رکورد * موجود کلیک نمایید تا صفحه ای مانند شکل ذیل لود گردد :

حال کافیست آی پی موجود در فیلد record data  را حذف و آی پی اختصاصی خریداری شده را به جای آن وارد و روی گزینه save  کلیک نمایید.

با اینکار هر زیردامنه (در صورتیکه به صورت فیزیکی موجود نباشد) به IP  اختصاصی ارجاع داده خواهد شد.

گام سوم افزودن کد :

از آنجا که این گام در هر 2 سرویس 2003 و 2008 ایران هاست یکسان می باشد لذا توضیحات این گام را می توانید در گام سوم روش ذیل مشاهده بفرمایید.

 

روش کار در سرویس های میزبانی 2008 ایران هاست به شرح ذیل می باشد :

گام اول : تهیه Dedicated IP

ابتدا برای پیاده سازی به یک IP اختصاصی نیاز خواهید داشت ، تا درخواست هایی را که برای هر زیر دامنه از سایت شما ارسال می شود را به روت سایت مربوطه ارجاع دهد. در ایران هاست میتوانید با هزینه سالیانه 110000 تومان گواهی SSL و Dedicated IP تهیه فرمایید (توجه داشته باشید در ایران هاست امکان خرید Dedicated IP  بصورت جداگانه وجود ندارد).

گام دوم : تنظیمات DNS

بعد از تهیه dedicated IP باید رکورد وایلدکارت ( * ) را در Zone Records DNS هاست خود برای آی پی اختصاصی که تهیه نموده اید ویراش نمایید. لذا ابتدا از طریق آدرس cp.yourdomain ( به جای yourdomain  نام دامین خود را وارد نمایید ) یا wsp.iranhost.com و اطلاعات مربوطه وارد کنترل پنل هاست خود شوید. روی گزینه Domains کلیک نموده و سپس نام دامین خود را انتخاب نمایید. در صفحه لود شده گزینه Edit DNS Records  کلیک نموده تا صفحه ای مانند ذیل لود گردد :

حال کافیست آی پی موجود در فیلد IP را حذف و آی پی اختصاصی خریداری شده را به جای آن وارد و روی گزینه save  کلیک نمایید. با اینکار هر زیردامنه (در صورتیکه به صورت فیزیکی موجود نباشد) به IP  اختصاصی ارجاع داده خواهد شد.

نکته : گام سوم در هر دو سرویس (2003 و 2008 ) یکسان می باشد.

گام سوم: افزودن کدها

در صورتیکه application خود را با ASP.NET  ورژن 3.5 یا بالاتر نوشته اید می توانید از قابلیت ASP NET routing استفاده نمایید و در صورتیکه از ASP.Net با ورژن پایین تر از 3.5 است ، می توانید از قابلیت http handler استفاده نمایید.

در ذیل برای راهنمایی بیشتر نمونه کدی ارائه می شود :

 

string host, originalurl, newurl;

host = Request.Url.Host;

originalurl = Request.Url.PathAndQuery;

if (host.EndsWith(".YourDomain.com"))

{

newurl = "Default.aspx?subdomain=" + host.Replace(".YourDomain.com", " ");

HttpContext.Current.RewritePath(newurl);

}

توضیح کد مربوطه به این شرح می باشد : ابتدا آدرس درخواست شده بررسی شده ، در صورتی که این آدرس زیر دامنه ای از دامنه ی اصلی بود دستورات داخل آکولاد اجرا خواهند شد. پس از اطمینان از وجود زیر دامنه ، نام آن دامنه به صفحه ای هدایت میشود. این کار بوسیله Rewrite کردن URL انجام شده و کاربر متوجه این انتقال نخواهد شد. این دستورات در رویداد Application_BeginRequest (که اولین رویدادی است که بعد از درخواست کاربر رخ میدهد) نوشته میشوند. توجه داشته باشید که میتوانید برای سهولت یک فایل Global.asax ساخته و کد ها را در آن بنویسید.

لازم به ذکر است که ایران هاست تنها در زمینه ارائه آی پی اختصاصی ( در قبال پرداخت وجه مربوطه از طرف مشتری ) و همچنین راهنمایی در جهت ست نمودن رکورد * مربوطه پشتیبانی ارائه می نماید و موارد مربوط به گام سوم ، برنامه نویسی و کدهای مورد نیاز پشتیبانی نخواهد داشت.