آموزش ایجاد ریدایرکت در هاست های ویندوزی -ریدایرکت در وب سرور iis

msm

عضو حرفه ای
ناظر انجمن
عضویت
13/5/15
ارسال ها
185
امتیاز
6
سلام
امروز قصد دارم براتون آموزش انجام ریدایرکت در وب سرور ویندوزی iis رو قرار بدم. از این ریدایرکت میتونید برای هر نوع ریدایرکتی روی هاست ویندوز استفاده کنید مثلا ریدایرکت از www به بدون www یا از http به https یا از یک دامین به دامین دیگر و ...
خوب برای شروع فایل web.config موجود در روت سایت رو با ftp یا از فایل منیجر کنترل پنلتون پیدا کنید و بازش کنید پیشنهاد میکنم قبل از هر تغییری از محتویات فعلیش یک نسخه بک آپ تهیه کنید .
برای شروع باید به یک نکته توجه کنید ممکن در حال حاضر هم فایل شما حاوی مقادیری باشه که نخواید از بین برن برای اینکار نیاز به این توضیح توجه کنید .
در حال استاندارد تمام کد های ما در فایل web.config باید بین دو کد زیر قرار بگیرن
کد:
<configuration>
  <system.webServer>
your code is here
  </system.webServer>
</configuration>
پس اگر فایلتون حاوی محتویات هست توجه کنید که باید کدهایی که اینجا قرار میدیم بین این دو کد قرار بگیرن همچنین اگر <rule><rewrite><rules> هم از قبل دارید میتونید کدای اصلی که پایین بهتون میدیم قبل از بسته شدن این دو کد قرار بدید ، سعی کردم کامل توضیح بدم به مشکلی بر نخورید این کدی که میذارم روی iis7 خودم استفادش کردم احتمالا رو نسخه های بالاتر هم کار میکنه
کد:
<configuration>
  <system.webServer>
    <rewrite>
      <rules>
        <rule name="Redirect to WWW" stopProcessing="true">
          <match url=".*" />
          <conditions>
            <add input="{HTTP_HOST}" pattern="^example.com$" />
          </conditions>
          <action type="Redirect" url="http://www.example.com/{R:0}"
                  redirectType="Permanent" />
        </rule>
      </rules>
    </rewrite>
  </system.webServer>
</configuration>
rulle name چیز مهمی نیست و میتونید با هر مقدار دیگه ای هم پرش کنید و تاثیری در عملکرد کد نداره
تو کد بالا ما دامنه رو از حالت بدون www به با www ریدایرکت کردیم فک میکنم میتونید حدس بزنید برای انجام برعکس اینکار باید به چه شکل کد رو تغییر بدید.
یه موضوع دیگه که برای افرادی که به سئو اهمیت میدن مهمه استفاده از نوع ریدایرکت یا همان redirectType هست در مثال بالا نوع ریدایرکت ما 301 یا همان دائمی بوده که با کلمه Permanet مشخصش کردیم برای سایر نوع ریدایرکت ها :
کد:
301 – Permanent
302 – Found
303 – See other
307 – Temporary
امیدوارم مطلب مفیدی براتون بوده باشه
آرزوی موفقیت
 
آخرین ویرایش توسط مدیر:

exmorrcmos

عضو تایید شده
کاربر انجمن
عضویت
12/4/16
ارسال ها
2
امتیاز
1
سن
31
آموزشتون واقعا عالی بود.خیلی تو اینترنت گشتم چیزی نبود.
مبشه لطفا توضیح بدید چطوری میشه صفحه www.site.ir/index.html رو به www.site.ir در هاست ویندوز ریدایرکت کرد؟
مرسی
 

msm

عضو حرفه ای
ناظر انجمن
عضویت
13/5/15
ارسال ها
185
امتیاز
6
آموزشتون واقعا عالی بود.خیلی تو اینترنت گشتم چیزی نبود.
مبشه لطفا توضیح بدید چطوری میشه صفحه www.site.ir/index.html رو به www.site.ir در هاست ویندوز ریدایرکت کرد؟
مرسی
خواهش میکنم به این شکل عمل کنید این مورد هم انجام پذیر خواهد بود
کد:
<configuration>
  <location path="index.htm">
    <system.webServer>
      <httpRedirect enabled="true" destination="http://site.ir/" httpResponseStatus="Permanent" />
    </system.webServer>
  </location>
</configuration>
 

exmorrcmos

عضو تایید شده
کاربر انجمن
عضویت
12/4/16
ارسال ها
2
امتیاز
1
سن
31
در مجموع 2 مورد بالا باهم رو میشه اینطوری نوشت?(مثال برای سایت domain.com)


کد:
     <modules runAllManagedModulesForAllRequests="true" />
        <rewrite>
            <rules>
                <rule name="CanonicalHostNameRule1" stopProcessing="true">
                    <match url="index\.htm(?:l)?" />
                        <conditions>
                            <add input="{HTTP_HOST}" pattern="domain\.com$" />
                        </conditions>
                        <action type="Redcomect" url="http://www.domain.com/" />
                </rule>
                <rule name="CanonicalHostNameRule2" stopProcessing="true">
                    <match url="(.*)" />
                    <conditions>
                        <add input="{HTTP_HOST}" pattern="^domain\.com$" />
                    </conditions>
                    <action type="Redcomect" url="http://www.domain.com/{R:1}" />
                </rule>
            </rules>
        </rewrite>
 

mahdimh20_20

عضو تایید شده
کاربر انجمن
عضویت
26/6/17
ارسال ها
1
امتیاز
1
سن
38
با سلام
متشکر از آموزش مفیدتان
در صورتی که در هاست ویندوزی بخواهیم فقط آدرس اصلی سایت از http به https ریدایرکت 301 شود و این ریدایرکت شامل ساب دامینها نشود چطور باید عمل کنیم
منظور اینست که آدرس http://site.com به https://site.con تبدیل شود
حالا وقتی آدرس http://subdomain.site.com را بزنیم بصورت https تبدیل نشود و خود دامنه با http باز شود
با تشکر
 
بالا