آژانس هواپیمایی
pop up

يك سئوال فوري در مورد ايجاد ساب دومين مجازي

شروع موضوع توسط blognevis ‏4 دسامبر 2007 در انجمن asp , ASP.NET

  1. blognevis

    blognevis Registered User

    تاریخ عضویت:
    ‏26 مارس 2006
    نوشته ها:
    872
    تشکر شده:
    6
    محل سکونت:
    shiraz
    دوستان سلام
    من ميخوام سابدومين مجازي در بانك sql بسازم و يك روش هم بلدم كه متاسفانه سابدومين را در سمت راست قرار ميده
    حالا من ميخوام سابدومين در سمت چپ باشه مثل مثال زير كسي ميتونه من را راهنمايي كنه
    ممنون ميشوم
    موفق باشيد


    www.subdomain.domain.com
     
  2. blognevis

    blognevis Registered User

    تاریخ عضویت:
    ‏26 مارس 2006
    نوشته ها:
    872
    تشکر شده:
    6
    محل سکونت:
    shiraz
  3. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    دوست من سوال شما گذشته از اینکه به #C مربوط نیست ، از پایه هم اشتباه است .

    از سابدمین ساختن در بانک SQL من تصور میکنم که شما یک APP با asp.net دارید که میخواهید در ساب دومین قرارش دهید . فعلا من این تاپیک رو میفرستم توی قسمت asp.net ، شما زحمت بکشید توضیحات بیشتری بدید که منظورتون چی بوده در صورت لزوم دوباره جای تاپیک رو عوض میکنیم .

    ضمنا لطف کنید در انجمن مربوط به موضوع پست بزنید . ممنون
     
  4. blognevis

    blognevis Registered User

    تاریخ عضویت:
    ‏26 مارس 2006
    نوشته ها:
    872
    تشکر شده:
    6
    محل سکونت:
    shiraz
    مدير محترم سلام
    دوست عزيز ممنون از اينكه حداقل شما يك جواب به ما داديد
    در ضمن بانك ms sql2000 هست
    ببينيد ما يك سرويس دهنده بوسيله زبان برنامه نويسي #c نوشته ايم كه ميخواهيم در ان سرويس ساب دومين براي كاربران ايجاد كنيم
    حال ما يك مشكل داريم و اون اينه كه ميخواهيم سابدومين مجازي در بانك تعريف بشه و مجبور نباشيم بصورت حقيقي در پانل هاست ان را تعريف كنيم
    اين كار را هم كرديم ولي مشكل اصلي اينه كه سابدومين كه ايجاد كرديم در سمت راست دومين قرار ميگيره مانند www.domain.com/x ولي ما ميخواهيم به اين شكل در بيايد www.x.domain.com حالا نميدونيم بايد چيكار بكنم

    لذا اين تايپك را ايجاد كرديم كه اگر كسي بلده ما را راهنمايي كند

    ممنون از همه دوسان
     
  5. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    سرویس دهنده با زبان #C نوشته اید یعنی با #C وب سرور نوشته اید ؟

    اگر خودتون وب سرور رو نوشتید که دیگه معنی نداره بپرسید چطوری براش ساب دامین تعریف کنید ، چون قائدتا خودتون فقط میدونید که چی نوشتید ! و چه امکاناتی داره !

    اگر منظور شما از سرویس دهنده ، برنامه سرویس دهنده وبلاگ است و مثلا میخواهید مثل وبلاگها آدرس دهی کنید تا جایی که من میدانم به یک Wildcard DNS نیاز دارید .
     
  6. blognevis

    blognevis Registered User

    تاریخ عضویت:
    ‏26 مارس 2006
    نوشته ها:
    872
    تشکر شده:
    6
    محل سکونت:
    shiraz
    ساب دومين براي فوروارد كردن به يك ادرس ديگه
     
  7. boxilink
  8. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    الان شما جواب منو دیدید ؟
     
  9. blognevis

    blognevis Registered User

    تاریخ عضویت:
    ‏26 مارس 2006
    نوشته ها:
    872
    تشکر شده:
    6
    محل سکونت:
    shiraz
    سلام
    ممنون از جوابتان
    بله دقيقا ميخوام مثل سرويس هاي وبلاگ ساب دومين ايجاد كنم البته بصورت مجازي

    راهي هست
     
  10. Graveworm

    Graveworm Registered User

    تاریخ عضویت:
    ‏23 می 2005
    نوشته ها:
    1,063
    تشکر شده:
    12
    محل سکونت:
    Tehran
    یعنی شما میخوای وقتی به این آدرس رفتیم :
    x.blog.com
    خودش بفرسته به مثلا :
    blog.com/blogs?uid=32442

    ؟؟
     
  11. blognevis

    blognevis Registered User

    تاریخ عضویت:
    ‏26 مارس 2006
    نوشته ها:
    872
    تشکر شده:
    6
    محل سکونت:
    shiraz
  12. blognevis

    blognevis Registered User

    تاریخ عضویت:
    ‏26 مارس 2006
    نوشته ها:
    872
    تشکر شده:
    6
    محل سکونت:
    shiraz
  13. mehdivk

    mehdivk Registered User

    تاریخ عضویت:
    ‏5 آپریل 2006
    نوشته ها:
    319
    تشکر شده:
    0
    راه حل ایجاد ساب دامین های مجازی به تعداد نا محدود : مشاهده کن
     
  14. avajang.com .leftavajang.com.right
  15. mazoolagh

    mazoolagh کاربر فعال شبکه و صفحات استاتیک کاربر فعال

    تاریخ عضویت:
    ‏10 آپریل 2004
    نوشته ها:
    2,940
    تشکر شده:
    7
    همه راهها به مون wildcard dns که گفته شد برمیگرده!

     
  16. blognevis

    blognevis Registered User

    تاریخ عضویت:
    ‏26 مارس 2006
    نوشته ها:
    872
    تشکر شده:
    6
    محل سکونت:
    shiraz
  17. blognevis

    blognevis Registered User

    تاریخ عضویت:
    ‏26 مارس 2006
    نوشته ها:
    872
    تشکر شده:
    6
    محل سکونت:
    shiraz
  18. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    منظورت از راه دیگه چیه ؟!
    راهش همونه که خدمتتون عرض کردیم دیگه ! سرور دیدیکیت میخواید که روش wildcard dns نصب باشه ! البته کل این قضیه به مقادیر زیادی سرمایه گذاری اولیه نیاز داره ! اگر برات توجیه اقتصادی داره این کار رو بکن . همونطوری که میبینی تعداد خیلی محدودی سایت در عالم وجود داره که میاد و subdomain مجازی میسازه !

    مثلا بین سایتهای ایرانی از حد اکثر از تعداد انگشتان دست ( چه بسا فقط یک دست ) تجاوز نمیکنه ! اگر میخوای خیالت رو راحت کنم با هیچ برنامه وب بیسی هم نمیتونی ساب دامینمجازی ایجاد کنی (اونم روی هاست شیر ! )! بیخودی دنبال راه حل اینطوری نگرد چون کنترل سابدامین ها از محدوده اختیارات asp.net خارجه !
     
  19. tabeez

    tabeez Registered User

    تاریخ عضویت:
    ‏7 دسامبر 2006
    نوشته ها:
    260
    تشکر شده:
    0
    پس این برنامه های بلاگی که نوشته شده با asp.net هست، به چه صورت subdomainها! رو مدیریت میکنن؟
     
  20. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    کدوم برنامه ها ؟؟؟؟
     
  21. amir_3d_mad

    amir_3d_mad Registered User

    تاریخ عضویت:
    ‏4 ژوئن 2007
    نوشته ها:
    98
    تشکر شده:
    0
    به نقل از aramdreamss در یکی از فرومها :

    مشتری من یک وب سایت با تعدادی ساب دامین داشت که مثلا به شکل products.somedomain.com تعریف شده بودند.حالا مشتری می خواست اگر به عنوان مثال کاربر آدرس support.somedomain.com/helpdesk.aspx را درخواست کرد اطلاعات از somedomain.com/support/helpdesk.aspx برای او نمایش داده شود. یعنی کاربر همیشه آدرس http://support.somedomain.com/helpdesk.aspx را در مرورگر خود ببیند ( در حالی که اطلاعات در پوشه support قرار دارند ) . این روند تغییر آدرس از آن چه که درخواست شده است " بازنویسی آدرس" نام دارد. در این مقاله ما یکی از راه های حل این مشکل را بررسی خواهیم کرد.

    چه گزینه هایی برای بازنویسی URL در اختیار داریم؟

    - ساده ترین و مناسب ترین راه استفاده از Application_BeginRequest و کلاس HttpContext برای بازنویسی آدرس است.
    - استفاده از یک ماژول http در برنامه ASP.NET برای انجام این کار
    -استفاده از یک فیلتر ISAPI که درخواست ها را بررسی و عمل بازنویسی را انجام دهد.

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

    رویداد Application_BeginRequest

    رویداد Application_BeginRequest اولین رویدادی است که در خط لوله ( Pipeline ) پردازش مربوط به HTTP اجرا می شود. این رویداد بهترین مکان برای قرار دادن کد بازنویسی آدرس است.

    کلاس HttpContext

    کلاس HttpContext شامل اطلاعات ویژه HTTP در مورد یک درخواست HTTP است.این کلاس همچنین به شما اجازه دسترسی به دیگر اشیا ASP.NET نظیر Request و Response را می دهد. این کلاس یک متد استاتیک به نام Current دارد که مراجع برنامه جاری را نگهداری می کند. متد RewritePath() در این کلاس کلید انجام عمل بازنویسی آدرس است. این متد به دو شکل در دات نت فریم ورک 1.1 تعریف شده است:


    کد:
    public void RewritePath(string);
    public void RewritePath(string, string, string);
    نقش اصلی متد RewritePath() به روز کردن مسیر شی Request و نیز مشخصه های Query String برای ماست.به عبارت دیگر استفاده از این متد این امکان را به ما می دهد تا از آدرس هایی استفاده کنیم که با مسیر داحلی صفحه تفاوت دارند.

    مثال - گام به گام

    - یک پروژه ASP.NET در سی شارپ بسازید.
    -فایل web.config را باز کنید و تگ های زیر را به آن بیفزایید:

    کد:

    <appSettings>
    <add key="productsSite" value="products"></add>
    <add key="servicesSite" value="services"></add>
    <add key="supportSite" value="support"></add>
    </appSettings>
    ما نام های فیزیکی پوشه هایی که صفحات واقعی در آنها قرار دارند را در بخش appSettings ذخیره می کنیم. ما این اطلاعات را بعدا در کدی که می نویسیم خواهیم خواند.

    - سه پوشه جدید در برنامه خود بسازید : Products وServices و Support
    -به هر یک از این پوشه ها یک وب فرم به نام MainPage.aspx اضافه کنید.
    -فایل Global.asax را باز کنید و هندلر زیر را پیدا کنید:

    protected void Application_BeginRequest (Object sender, EventArgs e)

    - کد زیر را به Application_BeginRequest اضافه کنید :

    کد:

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

    switch(host)
    {
    case "products.somedomain.com":
    newurl="~/" +
    ConfigurationSettings.AppSettings["productsSite"]
    + originalurl;
    break;
    case "services.somedomain.com":
    newurl="~/" +
    ConfigurationSettings.AppSettings["servicesSite"]
    + originalurl;
    break;
    case "support.somedomain.com":
    newurl="~/" +
    ConfigurationSettings.AppSettings["supportSite"]
    + originalurl;
    break;
    default:
    newurl="~/" +
    ConfigurationSettings.AppSettings["supportSite"]
    + originalurl;
    break;
    }
    HttpContext.Current.RewritePath(newurl);



    حالا بیایید کد را با هم بررسی کنیم:

    ما ابتدا ویژگی هوست مربوط به درخواست را به کمک Request.Url.Host دریافت می کنیم. در مورد این مثال ما آن را به صورت چیزی شبیه به support.somedomain.com یا somedomain.com دریافت می کنیم.

    ما همچنین مسیر و query string صفحه درخواست شده را به کمک Request.PathAndQuery بدست می آوریم. در سناریو ما این چیزی شبیه به /helpdesk.aspx خواهد بود.

    عبارت switch هوست را تست می کند و بر اساس هوست دریافت شده ما اطلاعات مربوط به محل فیزیکی صفحه را از فایل web.config می خوانیم. ما آدرس جدید را از ریشه به این پوشه فیزیکی تغییر می دهیم ( با کاراکتر ~ )

    در نهایت متد RewritePath() را از کلاس HttpContext فراخوانی می کنیم و آدرس جدید را به آن پاس می کنیم. در نتیجه زمانی که کاربر آدرسی نظیر support.somedomain.com را درخواست کند ما اطلاعات را از جایی مثل somedomain.com/support folder به کاربر خواهیم داد.

    ------------------------------------------------------------------------------------------
    <system.web>
    <urlMappings enabled="true">
    <add url="~/Widget.aspx" mappedUrl="~/Products/W/Widgets.aspx"/>
    </urlMappings>
    </system.web>

    من که نتونستم به هدفم برسم . اگه شما تونستی ، ما رو هم بی خبر نذار .
     
  22. H_R

    H_R مدیر بازنشسته

    تاریخ عضویت:
    ‏30 مارس 2005
    نوشته ها:
    3,285
    تشکر شده:
    15
    محل سکونت:
    North Pole
    این که قضیش کاملا فرق میکنه !
    اینجا یه سری سایدامین از قبل وجود داشته حالا توی این ساب دامین ها URLRewriting تعریف شده اصلا ساب دامین به صورت دینامیک تولید نشده !

    در ضمن خیلی هم بد توضیح داده !اوضیحاتش رو نخونید سنگین ترید !:)