PDA

View Full Version : سوال: طریقه کدنویسی در subdomain



rana-writes
جمعه 12 آذر 1389, 12:42 عصر
سلام دوستان برنامه نویس

من یه سایت دارم طراحی میکنم که بخشهای مختلفی داره مثل جوان، ادبی، موسیقی و ..
هر بخش هم زیر بخشهای خاص خودش رو داره و یه مدیر که اون رو نظارت میکنه و یه مدیر کل دارم که میتونه به همه بخشها دسترسی داشته باشه
طراحی و تحلیل بانک رو انجام دادم توی اون مشکلی ندارم چون قراره همه چی روی یه دیتابیس باشه
حالا میخوام هر بخش به عنوان یه subdomain باشه مثلا اگه آدرس سایت اینه :www.mysite.ir (http://www.mysite.ir)
زیر بخشها اینطوری باشن :www.music.mysite.ir (http://www.music.mysite.ir)
برای کار به این شکل باید چطوری عمل کنم؟ به ازای هر ساب دومین باید یه پروژه ی جداگانه ایجاد کنم؟
توی صفحه اول و صفحه اصلی که میخوام آخرین اخبار هر بخش رو ببینم چطوری باید تیترها و اخبار رو آدرس دهی کنم ؟

ممنون میشم راهنماییم کنین

MoslemMaleki
جمعه 12 آذر 1389, 12:55 عصر
با سلام
دوست عزیز ایجاد ساب دومین (که همراه با ایجاد یک پوشه جدید با همان نام در مسیر اصلی است) با استفاده از پنل مدیریتی سایتتون ممکنه.
و هر ساب دومین درواقع یک سایت جدا از سایت اصلیه.

raziee
جمعه 12 آذر 1389, 12:55 عصر
با سلام
دوست عزیز ایجاد ساب دومین (که همراه با ایجاد یک پوشه جدید با همان نام در مسیر اصلی است) با استفاده از پنل مدیریتی سایتتون ممکنه.
و هر ساب دومین درواقع یک سایت جدا از سایت اصلیه.
راه بهتری هم هست دوست من.

من یه سایت دارم طراحی میکنم که بخشهای مختلفی داره مثل جوان، ادبی، موسیقی و ..
هر بخش هم زیر بخشهای خاص خودش رو داره و یه مدیر که اون رو نظارت میکنه و یه مدیر کل دارم که میتونه به همه بخشها دسترسی داشته باشه
طراحی و تحلیل بانک رو انجام دادم توی اون مشکلی ندارم چون قراره همه چی روی یه دیتابیس باشه
حالا میخوام هر بخش به عنوان یه subdomain باشه مثلا اگه آدرس سایت اینه :www.mysite.ir
زیر بخشها اینطوری باشن :www.music.mysite.ir
برای کار به این شکل باید چطوری عمل کنم؟ به ازای هر ساب دومین باید یه پروژه ی جداگانه ایجاد کنم؟
توی صفحه اول و صفحه اصلی که میخوام آخرین اخبار هر بخش رو ببینم چطوری باید تیترها و اخبار رو آدرس دهی کنم ؟

یا باید Sub domain های واقعی درست کنید و برنامه خاصی رو در هر کدوم ایجاد کنید، که منطقی نیست!!
کاری به نظر من میتونه مفید تر باشه اینه که شما یک نرم افزار واحد رو در دامنه ی اصلی میگذارید.
و Sub Domain ها رو به صورت مجازی تعریف میکنید.
هر کدوم از این Sub Domain ها در واقع به یک بخش اشاره میکنند(به یک Categories).

کاری شبه به سرویس دهنده های وبلاگ.

rana-writes
جمعه 12 آذر 1389, 13:03 عصر
راه بهتری هم هست دوست من.

یا باید Sub domain های واقعی درست کنید و برنامه خاصی رو در هر کدوم ایجاد کنید، که منطقی نیست!!
کاری به نظر من میتونه مفید تر باشه اینه که شما یک نرم افزار واحد رو در دامنه ی اصلی میگذارید.
و Sub Domain ها رو به صورت مجازی تعریف میکنید.
هر کدوم از این Sub Domain ها در واقع به یک بخش اشاره میکنند(به یک Categories).

کاری شبه به سرویس دهنده های وبلاگ.

میشه بیشتر توضیح بدین؟
یعنی چی نرم افزار واحد؟
بعد من هنوز که به مرحله کد نویسی نرسیدم باید چکار کنم؟
به ازای هر subdomain پروژه ایجاد کنم یا همه رو توی همون پروژه اصلیم ایجاد کنم؟

raziee
جمعه 12 آذر 1389, 13:20 عصر
میشه بیشتر توضیح بدین؟
یعنی چی نرم افزار واحد؟
بعد من هنوز که به مرحله کد نویسی نرسیدم باید چکار کنم؟
به ازای هر subdomain پروژه ایجاد کنم یا همه رو توی همون پروژه اصلیم ایجاد کنم؟
ببینید مثلا شما در DataBase یک جدول درست کردید به نام Categories که Category ها ی مختلف مثل Music درش درج شده اند.
و جداول دیگه ای که در DataBase تون دارید به نوعی با این Category در ارتباطند.
و حالا میخوهید مثلا به جای این آدرس:
http://www.mysite.com/cat.aspx?music
داشته باشید:
http://music.mysite.com
درسته؟

مشکلتون سر پیاده سازی نرم افزار هست یا Sub Domain ها؟

rana-writes
جمعه 12 آذر 1389, 14:26 عصر
ببینید مثلا شما در DataBase یک جدول درست کردید به نام Categories که Category ها ی مختلف مثل Music درش درج شده اند.
و جداول دیگه ای که در DataBase تون دارید به نوعی با این Category در ارتباطند.
و حالا میخوهید مثلا به جای این آدرس:
http://www.mysite.com/cat.aspx?music
داشته باشید:
http://music.mysite.com
درسته؟

مشکلتون سر پیاده سازی نرم افزار هست یا Sub Domain ها؟

دقیقا من به همین شکل پیاده سازی کردم
من مشکلم با هر دوتاشه:(
من معمولی کد نویسی کنم بعد مثل اون چیزی که شما گفتین و سر درنیاوردم به شکل مجازی Sub domain ایجاد کنم؟
اگه به شکل اون آدرس اول بود یعنی این http://www.mysite.com/cat.aspx?music که همون کد نویسی معمولی میشد
اما این شکل دوم رو باید چطوری عمل کنم؟
پروژه م رو چطوری ایجاد کنم؟

raziee
جمعه 12 آذر 1389, 22:08 عصر
دقیقا من به همین شکل پیاده سازی کردم
من مشکلم با هر دوتاشه:(
من معمولی کد نویسی کنم بعد مثل اون چیزی که شما گفتین و سر درنیاوردم به شکل مجازی Sub domain ایجاد کنم؟
اگه به شکل اون آدرس اول بود یعنی این http://www.mysite.com/cat.aspx?music که همون کد نویسی معمولی میشد
اما این شکل دوم رو باید چطوری عمل کنم؟
پروژه م رو چطوری ایجاد کنم؟
ببینید شما به همون شکلی که برنامه نویسی کردید، ادامه بدید.
یعنی یه Page طراحی کنید که بوسیله ی QueryString یک Category رو بگیره و اطلاعاتی رو نمایش بده.
تا اینجا که مشکلی نیست.
حالا برای ایجاد SubDomain مجازی، میاید یک رکورد در DNS اضافه میکنید و هر درخواستی برای SobDomain که به آدرس سایتتون شد رو به نرمافزارتون هدایت میکنید.
کار سختی نیست. (البته باید هاستینگتون اجازه تغییرات در DNS رو بده.)
بعد تو برنامتون این SubDomain رو بدست میارید و با استفاده از متد HttpContext.Current.RewritePath صفحه رو ReWrite میکنید.
چیزی شبیه به این:

string host, originalurl, newurl;
host = Request.Url.Host;
originalurl = Request.Url.PathAndQuery;

if (host.EndsWith(".raziee.ir"))
{
newurl = "Default.aspx?subdomain=" + host.Replace(".raziee.ir", "");
HttpContext.Current.RewritePath(newurl);
}
بنابر این اگه مثلا کاربری http://music.raziee.ir رو درخواست بده صفحه ی http://raziee.ir/default.aspx?subdomain=music براش نمایش داده میشه.

rana-writes
جمعه 12 آذر 1389, 22:46 عصر
ممنون از راهنماییتون
ببخشین که سوالهام شاید مبتدیانه به نظر برسه
این تکه کدی که نوشتین باید کجا قرار بگیره؟ هر جایی که قراره لینک بدم به ساب دومین خاصی باید چیزی شبیه این بنویسم؟

raziee
جمعه 12 آذر 1389, 23:14 عصر
ممنون از راهنماییتون
ببخشین که سوالهام شاید مبتدیانه به نظر برسه
این تکه کدی که نوشتین باید کجا قرار بگیره؟ هر جایی که قراره لینک بدم به ساب دومین خاصی باید چیزی شبیه این بنویسم؟

میتونید یک HttpModule بنویسید و در وب کانفیگ تعریفش کنید.
اما ساده ترین راه اینه که یک فایل Global.asax به پروژتون اضافه کنید.
در این فایل میتونید تمام درخواست ها، خطا های رخ داده و .... رو مدیریت کنید.
در رویداد Application_BeginRequest که اولین رویدادی است که بعد از درخواست کاربر رخ میده، کد هاتون رو بنویسید.
در مورد HttpModuleو HttpHandler تحقیق کنید، کاربرد زیادی دارند.

asn2010
شنبه 13 آذر 1389, 02:21 صبح
با سلام
این موضوعی بود که همیشه برای من سوال بود , حالا که مطرح شد می خوام به یه نتیجه ای برسم اگه دوستان راهنمایی کلیدی کنن :لبخندساده:
در آیندی نزدیک کاری شبیه به کار وبلاگها را بابد انجام بدم.
قبلا در مورد UrlRewriting یا UrlMapping هم تحقیق کردم ولی اینقدر مبحث سنگینه هر دفعه خسته شدم و دیگه ادامه ندادم اگه دوستان راهنمایی کنن واقعا ممنون میشم ... سورسی مثالی اگه دارید (PDF و لینک نباشه :لبخند: به اندازه کافی توی تحقیقای گذشته دارم) بزارید عالی میشه همراه با توضیحش.
در مورد این مورد :

حالا برای ایجاد SubDomain مجازی، میاید یک رکورد در DNS اضافه میکنید و هر درخواستی برای SobDomain که به آدرس سایتتون شد رو به نرمافزارتون هدایت میکنید.
کار سختی نیست. (البته باید هاستینگتون اجازه تغییرات در DNS رو بده.)چیزی متوجه نشدم !! چطوری باید این کارو کرد ؟ با چه کدی؟

مثالا یکی که وبلاگی با نام : Www.test.weblog.com (http://Www.test.weblog.com) داره !! آدرس واقعیش می تونه چی باشه؟چه فایل های یا چه دایرکتوری load میشه؟؟؟
قدم به قدم راهش چیه ؟؟

raziee
شنبه 13 آذر 1389, 10:17 صبح
چیزی متوجه نشدم !! چطوری باید این کارو کرد ؟ با چه کدی؟
در کنترل پنلی که توسط هاستتون در اختیارتون قرار داده میشه میتونید تنظیمات DNS رو انجام بدید.
یک رکورد جدید از نوع A ایجاد کرده و مقدار ورودی رو برابر با * میدید. یعنی تمامی SubDomain ها ور در بر بگیره.

مثالا یکی که وبلاگی با نام : Www.test.weblog.com داره !! آدرس واقعیش می تونه چی باشه؟چه فایل های یا چه دایرکتوری load میشه؟؟؟
خیر آدرسش واقعی نیست و به دایرکتوری خاصی اشاره نمیکنه در پست های قبلی عرض کردم.

قدم به قدم راهش چیه ؟؟
برای ایجاد یک سرویس دهنده ی وبلاگ کمی قضیه فرق داره.
از این بابت که شما باید یک سرور اختصاصی داشته باشید(برای حجم بالا (تعداد وبلاگ های زیاد) ولی الزامی نیست).
علاوه بر این شما نیاز مند 2 IP هستید.
یکی برای Subdomain ها و دیگری برای Domain اصلی.
به سرویس دهنده ی Blogfa.com نگاه کنید.
دامنه ی اصلی با IP 38.113.162.27 و تمام وبلاگ ها با IP 38.113.162.129 کار میکنند.
توضیحات بیشتر در رابطه با سرویس دهنده های وبلاگ رو در تاپیک دیگه ای دنبال کنید.

asn2010
شنبه 13 آذر 1389, 17:51 عصر
با تشکر از جواب شما !!
چگونه آی پی دوم را به بقیه وبلاگها اتصال می دهند ؟؟؟؟

raziee
شنبه 13 آذر 1389, 20:38 عصر
با تشکر از جواب شما !!
چگونه آی پی دوم را به بقیه وبلاگها اتصال می دهند ؟؟؟؟

شما باید 2 تا Application بنویسید.
یکی برای مدیریت وبلاگ و دیگری برای نمایش وبلاگ.
ادامه این موضوع رو در تاپیک دیگه ای دنبال کنید.
موضوع این تاپیک چیز دیگه ای هست.(طبق قوانین در هر تاپیک می بایست یک موضوع مطرح بشه)

rana-writes
پنج شنبه 18 آذر 1389, 19:20 عصر
سلام دوباره
من یه سری سرچهایی کردم
اما یه چیزی رو متوجه نشدم، شما توی توضیحاتتون گفتین یه ساب دومین مجازی تعریف کنم با استفاده از درج یه رکورد
اما من اینجاها
http://barnamenevis.org/showthread.php?109559-آموزش-ايجاد-SubDomain-به-صورت-بينهايت-در-ASP.net
http://barnamenevis.org/showthread.php?109520-سوال-در-مورد-نحوه-ایجاد-SubDomain&p=535022
که دیدم گفته باید از هاست یه آی پی Valid بگیرم، من نمیخوام هزینه ی اضافی ای برای اینکار بدم، یعنی این چیزی که شما گفتین یعنی ساب دومین مجازی هم باید براش هزینه اضافه تری پرداخت بشه؟

ممنونم از راهنماییتون

raziee
جمعه 19 آذر 1389, 00:07 صبح
سلام دوباره
من یه سری سرچهایی کردم
اما یه چیزی رو متوجه نشدم، شما توی توضیحاتتون گفتین یه ساب دومین مجازی تعریف کنم با استفاده از درج یه رکورد
اما من اینجاها
http://barnamenevis.org/showthread.p...�-در-ASP.net
http://barnamenevis.org/showthread.p...omain&p=535022
که دیدم گفته باید از هاست یه آی پی Valid بگیرم، من نمیخوام هزینه ی اضافی ای برای اینکار بدم، یعنی این چیزی که شما گفتین یعنی ساب دومین مجازی هم باید براش هزینه اضافه تری پرداخت بشه؟

ممنونم از راهنماییتون
در لینکی که دادید هم آقای chaalesh صحبت های بنده رو کردند(پست 3)
در مورد IP Valid:

علاوه بر این شما نیاز مند 2 IP هستید.
یکی برای Subdomain ها و دیگری برای Domain اصلی.
به سرویس دهنده ی Blogfa.com نگاه کنید.
دامنه ی اصلی با IP 38.113.162.27 و تمام وبلاگ ها با IP 38.113.162.129 کار میکنند.
بنده هم در بالا (پست 11) بهش اشاره کردم. ولی الزامی نیست. من بدون IP Valid هم تست کردم و جواب گرفتم.
=-=-=-=-=-=-=
به طور کلی صحبت هایی که در این تاپیک برای ایجاد SubDomain به صورت مجازی شد برای پیاده سازی بهتره(به نظر من) چون اگه فردا روزی Category های سایتتون افزایش پیدا کرد نخواهید SubDomain ایجاد کنید.
اما اگه میبینید پیاده سازی براتون سخت هست و Categoy های مشخصی دارید (مثلا 3 تا) بیخیال بشید و برید 3 تا SubDomain ایجاد کنید و در هر کدوم از SubDomain ها عمیلات ReWrite رو انجام بدید.

rana-writes
جمعه 19 آذر 1389, 11:35 صبح
سلام
ممنونم از جوابتون
منم category هام محدود نیستن و قراره زیاد بشن
فقط میخواستم بدونم جریان این آی پی Valid چیه و آیا الزام داره یا نه
منم باید شبیه شیوه شما عمل کنم :)

بازم ممنونم

alonemm
جمعه 19 آذر 1389, 20:13 عصر
شما میتونید ساب دومین ها رو به یک پوشه به همان نام در کل پروژه انتقال بدید.