Redirect یا تغییر مسیر http به https در IIS

Redirect یا تغییر مسیر http به https در IIS

راه اندازی یک تغییر مسیر یا ریدایرکت HTTP/HTTPS در IIS

برای اینکه بازدیدکنندگان را مجبور کنیم تا به طور خودکار به اتصال امن وب سایت شما وصل شوند، لازم است یک قانون تغییر مسیر HTTP/HTTPS معین راه اندازی کنیم. در این روش، هرکسی که با استفاده از یک لینک مثل bshafiei.ir وارد سایت شما می شود به طور خودکار به https://bshafiei.ir یا https://www.bshafiei.ir تغییر مسیر داده میشود (واسبته به انتخاب شما) و این کار ترافیک انتقالی بین کلاینت و سرور را رمزگزاری می کند.

در زیر مراحل لازم برای راه اندازی تغییر مسیر HTTPS در IIS آموزش داده شده است:

  1. دانلود و نصب ماژول URL Rewrite

باز کردن کنسول IIS Manager و انتخاب وب سایتی که می خواهید تغییر مسیر را به آن اعمال کنید:

  1. روی آیکن URL Rewrite دوبار کلیک کنید
  2. در منوی سمت راست روی Add Rule(s) کلیک کنید
  3. Blank Rule در بخش Inbound انتخاب کنید و روی Ok کلیک کنید

  1. هر نامی که دوست دارید وارد کنید
  2. در بخش Match URL:
    1. Matches The Pattern را در منوی کشویی Requested URL انتخاب کنید
    2. Regular Expressions را در منوی کشویی Using انتخاب کنید
    3. الگوی مقابل را در بخش Match URL وارد کنید: (.*)
    4. تیک ignore case را بزنید

  1. در بخش Conditions از منوی کشویی Logical Grouping گزینه Match all را انتخاب کنید و سپس روی Add کلیک کنید.
  2. در پنجره ای که باز می شود:
    1. به عنوان ورودی شرط {HTTPS} را وارد کنید
    2. از منوی کشویی Matches the Pattern را انتخاب کنید
    3. برای الگو ^OFF$ را وارد کنید.
    4. روی OK کلیک کنید.

  1. در بخش Action گزینه Redirect را به عنوان نوع اکشن انتخاب کنید و برای Redirect URL مقدار مقابل زیر را وارد کنید:

https://{HTTP_HOST}{REQUEST_URI}

  1. تیک Append query string را بگذارید

نکته: 4 نوعی که می توانید برای Redirect type انتخاب کنید:

  • Permanent (301) – مقداری که نسبت به سایر مقادیر ارجحیت دارد، به کلاینت ها می گوید که محتوای سایت برای همیشه به نسخه HTTPS منتقل شده است. برای SEO خوب است، چون همه ترافیک را به سایت HTTPS شما می آورد و یه جنبه مثبت روی رنک آن در موتورهای جستجو ایجاد می کند
  • Found (302) – فقط باید زمانی استفاده شود که شما محتوای صفحات مشخصی را به مکان جدیدی (موقتا) منتقل کرده باشید. این گزینه معمولا برای تغییر مسیر HTTP/HTTPS توصیه نمی شود
  • See Other (303) – نوع تغییر مسیر خاص برای درخواست های GET. برای HTTP/HTTPS توصیه نمی شود
  • Temporary (307) – جانشین HTTP/1.1 برای نوع تغییر مسیر 302. برای HTTP/HTTPS توصیه نمی شود.

گزینه 2: Redirect Rule را به صورت https://{HTTP_HOST}/{R:1}  می گذارد و گزینه Append query string را نیز انتخاب می کند. Action Type همچنان Redirect می باشد.

تغییر مسیر IIS می تواند با دسترسی به http://bshafiei.ir وب سایت در URL تست شود. برای این که مطمئن شوید که مرورگر شما نسخه کش شده از سایت شما را نشان نمی دهد بهتر است از حالت ناشناس مروگر استفاده کنید.

قانون ایجاد شده در IIS اما سایت هنوز به HTTPS تغییر مسیر نمی دهد:

معمولا، قانون تغییر مسیر، در فایل web.config که در پوشه root سند سایت شما قرار دارد نوشته می شود. اگر تغییر مسیر به دلیل خاصی عمل نکرد، مطمئن شوید که web.config وجود دارد و چک کنید حاوی قانون مناسب می باشد.

برای این کار، مراحل زیر را دنبال کنید:

  1. در فهرست سایت ها در IIS، روی سایت خود کلیک راست کنید و گزینه Explore را انتخاب کنید:

  1. پوشه root سایت باز می شود. Web.config را باز کنید.
  2. این فایل باید حاوی قطعه کد زیر باشد:

<configuration>
 <system.webServer>
 <rewrite>
 <rules>
 <rule name="HTTPS force" enabled="true" stopProcessing="true">
 <match url="(.*)" />
 <conditions>
 <add input="{HTTPS}" pattern="^OFF$" />
 </conditions>
 <action type="Redirect" url="https://{HTTP_HOST}{REQUEST_URI}" redirectType="Permanent" />
 </rule>
 </rules>
 </rewrite>
 </system.webServer>
</configuration>

  1. اگر فایل web.config حاوی این قطعه کد نبود، شما می توانید این قطعه کد را دستی وارد کنید.