چگونه می توان زیر دامنه (Subdomain) مجازی ایجاد نمود؟

از آنجا که در سرویس های 2008 ایجاد subdomain  از طریق کنترل پنل WSP  در پلانهای P6   و بالاتر، باعث هدر رفتن منابع دامنه پلان شما می شود، از طرفی در پلان های پایین تر امکان ایجاد subdomain  وجود ندارد.(هرsub  domain   به عنوان یک دامنه هاست شده در نظر گرفته می شود) لذا می توانید جهت جلوگیری از این موضوع و همچنین بهره مندی از sub domain  در پلان خود ازsub  domain  های مجازی(که توسط قابلیت URL Rewrite   درIIS 7   پشتیبانی می شود) استفاده نمایید.

برای ایجاد sub domain  در پلان های 2008 ایران هاست مراحل ذیل را دنبال نمایید: 

1-  ایجاد pointer  برای subdomain   موردنظر: 

از طریق آدرس cp.yourdomain (به جایyourdomain نام دامنه خود را وارد نمایید). همچنین می توانید اگر از سرویس کانادا استفاده می نمایید از طریق آدرس wsp.iranhost.com و اگر از سرویس ایران بهره می برید با آدرس ircp.iranhost.com و با استفاده از نام کاربری و کلمه عبور مربوطه وارد کنترل پنل هاست خود شوید.

برروی آیکون Web    و سپس گزینه Website  کلیک نمایید. در صفحه لود شده برروی نام دامینی که می خواهید ساب دامین برای آن ایجاد شود کلیک نمایید. در صفحه لود شده گزینه Add Website Pointer    را انتخاب نمایید.
 حال کافیست در بخش اول نام ساب دامین را وارد و در بخش دوم دامین مورد نظر را انتخاب نمایید (به طور مثال در صورتیکه می خواهید 
portal.iranhost.com  را به عنوان ساب دامین داشته باشید باید در بخش اول portal    را وارد و در بخش دوم iranhost.com    را انتخاب نمایید) در انتها برروی گزینه Add Pointer    جهت اضافه شدن تنظیمات ، کلیک نمایید.

 

2- ایجاد فولدر به نام subdomain  موردنظر در فولدر wwwroot   در File Manager  سایت مربوطه: 

از قسمت Hosting Space  روی آیکون File Manager  کلیک نمایید. در این صفحه روی فولدری که به نام دامنه موردنظر می باشد کلیک کرده و به شاخه ی wwwroot  بروید. روی آیکون create folder  کلیک کرده و فولدری به نام subdomain   موردنظر ایجاد کنید (به طور مثال در صورتیکه ساب دامین مورد نظر  portal.iranhost.com    است باید در فلدر wwwroot    مربوط به iranhost.com    یک فلدر به نام portal    ایجاد نمایید) و سپس فایلها و فولدرهای مربوطه را در این فولدر Upload  نمایید.

3- اضافه نمودن کد مربوطه به فایل web.config    سایت :
برای این منظور ابتدا محتویات فایل web.config   (فعلی خود که در شاخه ی wwwroot   بخش file manager    سایت مربوطه موجود میباشد ) را کپی کرده و در یک ویرایشگر متنی مانند    Notepad و یا Notepad++   آن را past    نمایید حال کافیست کد زیر را بین دو تگ  "<system.webServer >و  "</system.webServer >موجود مطابق شکل زیر قرار دهید  .  سپس کل محتویات کنونی را مجدداً در فایل web.config    هاست خود قرار داده و ذخیره نمایید.

 

 

 

 

 

 
 


 

کد مربوط به Rewrite  : 

توجه فرمایید که در تمامی خطوط کد زیر، باید به جای عبارت Domain.com  ، نام دامنه خود را قرار دهید.

 

<system.webServer>

<rewrite>

            <rules>

                <rule name="Imported Rule 1" stopProcessing="true">

                    <match url="(.*)" ignoreCase="false" />

                    <conditions logicalGrouping="MatchAll">

                        <add input="{HTTP_HOST}" pattern="^www.domain.com" negate="true" />

                        <add input="{HTTP_HOST}" pattern="^([^.]+).domain.com" ignoreCase="false" />

                    </conditions>

                    <action type="Rewrite" url="/{C:1}/{R:1}" />

                </rule>

                <rule name="Imported Rule 2" stopProcessing="true">

                    <match url="^([^/]+)/(.*)$" ignoreCase="false" />

                    <conditions logicalGrouping="MatchAll">

                        <add input="{THE_REQUEST}" pattern="^[A-Z]{3,9}\ /(.+)\ HTTP/" ignoreCase="false" />

                    </conditions>

                    <action type="Redirect" url="http://{R:1}.domain.com/{R:2}" redirectType="Permanent" />

                </rule>

            </rules>

        </rewrite>

</system.webServer>

 

حال می توانید با زدن نام ساب دامین ایجاد شده در آدرس بار مرورگر ، محتویات مربوطه را مشاهده نمایید. 

 

نکته : در صورتی که در فضای میزبانی خود Domain Alias دارید و قصد دارید    Sub-Domain تعریف شده برای دامنه یا دامنه های جانشین نیز کار کند باید به صورت ذیل عمل نمایید:

 

 

 

 

باید کدهای مابین تگ <rules> و </rules> را  مجددا در زیر تگ  </rule>  که با رنگ قرمز مشخص شده، به صورت زیر اضافه نمایید:

 

 

توجه فرمایید به جای    Domain.com باید نام دامین اصلی و به جای  Domain.ir نام  دامین جانشین خود را وارد نمایید  .

 

 

 
<system.webServer>
<rewrite>
            <rules>
                <rulename="Imported Rule 1"stopProcessing="true">
                    <matchurl="(.*)"ignoreCase="false"/>
                    <conditionslogicalGrouping="MatchAll">
                        <addinput="{HTTP_HOST}"pattern="^www.domain.com"negate="true"/>
                        <addinput="{HTTP_HOST}"pattern="^([^.]+).domain.com"ignoreCase="false"/>
                    </conditions>
                    <actiontype="Rewrite"url="/{C:1}/{R:1}"/>
                </rule>
                <rulename="Imported Rule 2"stopProcessing="true">
                    <matchurl="^([^/]+)/(.*)$"ignoreCase="false"/>
                    <conditionslogicalGrouping="MatchAll">
                        <addinput="{THE_REQUEST}"pattern="^[A-Z]{3,9}\ /(.+)\ HTTP/"ignoreCase="false"/>
                    </conditions>
                    <actiontype="Redirect"url="http://{R:1}.domain.com/{R:2}"redirectType="Permanent"/>
                </rule>
                 <rule name="Imported Rule 3" stopProcessing="true">
                     <match url="(.*)" ignoreCase="false" />
                     <conditions logicalGrouping="MatchAll">
                         <add input="{HTTP_HOST}" pattern="^www.domain.ir" negate="true" />
                         <add input="{HTTP_HOST}" pattern="^([^.]+).domain.ir" ignoreCase="false" />
                     </conditions>
                     <action type="Rewrite" url="/{C:3}/{R:3}" />
                 </rule>
                 <rule name="Imported Rule 4" stopProcessing="true">
                     <match url="^([^/]+)/(.*)$" ignoreCase="false" />
                     <conditions logicalGrouping="MatchAll">
                         <add input="{THE_REQUEST}" pattern="^[A-Z]{3,9}\ /(.+)\ HTTP/" ignoreCase="false" />
                     </conditions>
                     <action type="Redirect" url="http://{R:3}.domain.ir/{R:4}" redirectType="Permanent" />
                 </rule>

            </rules>
        </rewrite>
</system.webServer>

 

لازم به ذکر است جهت کارکرد  اپلیکیشن .NET در ساب دامین مجازی، می بایست بعد از انجام تمامی موارد  ذکر شده در بالا، در انتها برای فلدر مربوط به ساب دامین مجازی تان  یک Virtual Directory با نام همان فلدر تعریف نمایید.

 

2. کد لازم برای ریدایرکت تنها یک ساب دامنه:

مزیت این کد در این است که با کدهای rewrite   دیگر اختلال ایجاد نمی کند.

مثال - اگر آدرس زیر دامنه شما sub.mydomain.ir باشد،کد بدین شکل تغییر خواهد کرد : 

* بخش هایی که با رنگ قرمز مشخص شده را با آدرس دامنه و نام subdomain  جایگزین کنید.

 

 

<rewrite>
   <rules>
      <rule name="Rewrite sub-domain to dir" enabled="true">
         <match url="^(.*)$" />
         <conditions>
            <add input="{HTTP_HOST}" pattern="^sub\.Mydomain\.ir$" />
         </conditions>
         <action type="Rewrite" url="sub/{R:1}" />
      </rule>
   </rules>
</rewrite>
 

جهت دریافت راهنمایی های مربوطه به لینک زیر مراجعه نمایید.

http://support.iranhost.com/KB/a381/article.aspx?KBSearchID=0