مقاله : ساخت بی نهایت Subdomain از طریق برنامه نویسی

shahab_ksh

عضو جدید
ایجاد subdomain از طریق برنامه نویسی یکی از جذاب ترین مسائل برنامه نویسی تحت وب است
سایتهای زیادی مانند blogfa یا persianblog از این سیستم استفاده می کنند بدین شکل که برای مثال کاربران سایت شما بتوانند آدرس مخصوص به خود را داشته باشند

برای مثال شما وب سایتی به نام http://iransite.com دارید و دوست دارید که کاربران ساییتون هر کدوم بتونن آدرس اختصاصی داشته باشند

یکی از راههایی که وجود داره ایجاد هر زیر دامنه در کنترل پنلتونه اما این کار بصرفه نیست و شما رو خسته می کنه چون که ممکنه در روز هزاران نفر وارد سایت شما بشن و درخواست ایجاد آدرس کنن
بجز مورد بالا مشکلات دیگه هم وجود داره مثل

- غیر قابل کنترل بودن از طریق برنامه نویسی
- به ازاء هر آدرس زیر دامنه باید یک دایرکتوری اختصاص داده بشه
- منبع سرور به شدت مورد استفاده قرار می گیره
- سازماندهی و کنترل دشوار میشه
- برای تعویض سرور به مشکلات زیادی بر میخورید
- استفاده ازWildcard هم هزینه های جانبی رو به همراه داره و همه سرورها انجام نمی دن
- کار برنامه نویس برای امنیت و یکپارچگی بسیار مشکل میشه
- ...

برای حل این مشکلات برخی از سرورها خود امکاناتی رو به وجود آورده که براحتی برنامه نویس بتونه بی نهایت دامنه رو از طریق برنامه نویسی به وجود بیاره و حتی کاربران بتونن به راحتی از امکانات این سیستم استفاده کنن

از مزایای استفاده از این سرویس میتوان به
- قابل کنترل و دسترس بودن از طریق برنامه نویسی
- منبع سرور به هیچ وجه درگیر نمیشن و سرعت برنامه شما کاهش پیدا نمی کنه
- سازماندهی و کنترل به ساده ترین شکل ممکن امکان پذیره
- بی نیاز بودن به سرور اختصاصی و هزینه های سنگین آن
- بی نیاز بودن به Wildcard
- ...

حال از نظر برنامه نویسی کافی کد زیر رو در روت دایرکتوری سایت http://iransite.ir بنویسید
Request.Url.ToString();



در مثال ما اگه آدرس http://parsa.iransite.ir رو در آدرس بار وارد کنیم مقدار http://parsa.iransite.ir رو بر میگردونه با استفاده از روشهای برنامه نویسی میشه Subdomain یعنی همون parsa رو آدرس جدا کرد و این چیزی که یک برنامه نویس به اون احتیاج داره برنامه نویس می تونه تمام آدرس های رو از طریق برنامه بدست بیاره در asp.net برنامه نویس می تونه با استفاده از URLRewrite تمام Subdomain ها رو به یه دایرکتوری یا یک صفحه دینامیک ارجاع بده

شاید سوال شما این باشه چطور میشه URL ها رو کنترل کرد مثل blogfa یا persianblog این برای یک برنامه نویس کار راحتی
فرض کنید می خواهید یک سایت مثل blogfa بزنید که کاربران بتونن از اون طریق ثبت نام کنن و آدرس مخصوص خودشون رو داشته باشن کار راحتی کافی یه بخش ثبت نام توی سایتتون داشته باشید که ID یا همون URL ها رو توی یه دیتابیس ذخیره کنه در این حالت شما میتونید هر آدرس رو فقط یک بار برای یک نفر ثبت کنید مثلا کسی ID به نام parsa رو می خاد ثبت کنه شما ID به نام parsa رو در بانک اطلاعاتی تون ذخیره میکنید و ترتیبی می دید که اگه کسی دوباره خواست اون آدرس رو ثبت کنه نتونه خوب تا حالا فقط کار ثبت ID و منحصر به فرد کردن اون رو انجام دادیم با روش بالا هم روش دست یابی به subdomain رو گفتم بقیه بخش ها مثل مدیریت برای هر کاربر و ... هم که کار راحتی یعنی کلید یا متغییر صفحات شما میشه همون Subdomain ها که منحضر فرد هستند

حال کنترل Subdomain ها
کل Subdomian های ورودی از سه حالت بیشتر نیست یا قبلا ثبت شده که مراحل بالا رو توضیح دادم
یا Subdomian قبلا ثبت نشده یعنی Subdomain رو از url گرفتید توی بانک اطلاعاتی رو گشتید ولی نبوده در این حالت می تونید صفحه رو طراحی کنید که به کاربر بگه این چنین صفحه ای وجود نداره ! یا یه کار بهتر می تونید پیشنهاد ثبت نام این Subdomain رو بدید
و حالا حالت سوم فرض کنید کسی www رو وارد کرد یعنی این که مثلا نوشت http://www.iransite.ir در این حالت که www به عنوان یک زیر دامنه شد ! ولی شما می تونید به راحتی کاربر رو به آدرس http://iransite.ir یعنی بدون www ریدایرکت کنید
برای حذف یک کاربر هم کافی که شما ID که میشه همان subdomain مربوطه رو از بانک اطلاعاتی حذف کنید یا بلوک کنید !
توجه : در صورتی که این کد رو در سرورهای غیر از http://www.iransite.ir آزمایش کردید پیام خطای Internet Explorer cannot display the webpage رو دریافت خواهید کرد در صورتی که در سرورهای ایران سایت نام subdomain برای شما بر گشت داده می شود.
موفق باشید.
http://www.iransite.com




 
بالا