知識庫

IIS 將 HTTP 重新導向到 HTTPS

在 IIS 中設置 HTTP/HTTPS 重定向

一旦 SSL 證書已安裝,您的網站仍然可以通過常規不安全的 HTTP 連接訪問。要安全地連接,訪問者必須在瀏覽器中手動指定 https:// 前綴,當他們輸入您網站的地址時。

為了強制您的網站使用安全連接,有必要設置某個 HTTP/HTTPS 重定向規則。這樣,任何輸入您網站的鏈接(如 'yourdomain.com')的用戶將被重定向到 'https://yourdomain.com' 或 'https://www.yourdomain.com'(根據您的選擇),使得伺服器與客戶端之間的流量加密。

以下是設置 IIS HTTPS 重定向的步驟:

  1. 下載並安裝 'URL Rewrite' 模塊。
  2. 打開 'IIS 管理員' 控制台,在左側菜單中選擇您想應用重定向的網站:

    iisred1

  3. 雙擊 'URL Rewrite' 圖標。
  4. 在右側菜單中單擊 'Add Rule(s)'。
  5. 在 'Inbound' 部分中選擇 'Blank Rule',然後按 'OK':

    iisred2

  6. 輸入您希望的任何規則名稱。
  7. 在 'Match URL' 部分:

    - 在 'Requested URL' 下拉菜單中選擇 'Matches the Pattern'
    - 在 'Using' 下拉菜單中選擇 'Regular Expressions'
    - 在 'Match URL' 部分中輸入以下模式:'(.*)'
    - 勾選 'Ignore case' 框

    iisred3

  8. 在 'Conditions' 部分,選擇 'Match all' 在 'Logical Grouping' 下拉菜單中,然後按 'Add'。
  9. 在彈出的窗口中:


    - 輸入 '{HTTPS}' 作為條件輸入
    - 從下拉菜單中選擇 'Matches the Pattern'
    - 輸入 '^OFF$' 作為模式
    - 按 'OK'

    iisred4

  10. 在 'Action' 部分,選擇 'Redirect' 作為動作類型,並為 'Redirect URL' 指定以下內容:

    https://{HTTP_HOST}{REQUEST_URI}

  11. 勾選 'Append query string' 框。
  12. 選擇您選擇的重定向類型。整個 'Action' 部分應如下所示:

    iisredirect5

  13. 注意:在該菜單中有 4 種可以選擇的重定向類型:
    - 永久(301)- 在這種情況下首選的類型,告知客戶該網站內容已永久轉移到 HTTPS 版本。對 SEO 有好處,因為它將所有流量引導到您的 HTTPS 網站,對其在搜索引擎中的排名產生積極影響。
    - 發現(302)- 僅在您將某些頁面的內容*臨時*移動到新位置時使用。這樣 SEO 流量會對之前內容的位置有利。這個選項通常不建議用於 HTTP/HTTPS 重定向。
    - 其他查看(303)- 專門用於 GET 請求的特定重定向類型。不建議用於 HTTP/HTTPS。
    - 臨時(307)- HTTP/1.1 的 302 重定向類型的後繼者。不建議用於 HTTP/HTTPS。

  14. 在 'Actions' 菜單的右側單擊 'Apply'。

可以通過訪問您網站的 http:// 指定的 URL 來檢查 IIS 重定向。為確保您的瀏覽器顯示的不是網站的緩存版本,可以使用瀏覽器的匿名模式。

規則已在 IIS 中創建,但網站仍未重定向到 https://

通常,重定向規則會寫入網站的文檔根目錄中的 web.config 文件。如果出於某種原因重定向不起作用,請確保 web.config 文件存在,並檢查它是否包含相應的規則。

要做到這一點,請遵循以下步驟:

  1. 在 IIS 的網站列表中,右鍵單擊您的網站。選擇 'Explore' 選項:

    iisred6

  2. 'Explore' 將打開該站點的文檔根目錄。檢查是否有 web.config 文件。
  3. web.config 文件必須包含以下代碼塊:
    < 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 >
  4. 如果 web.config 文件缺失,您可以創建一個新的 .txt 文件,將上述代碼放入其中,然後保存並重命名文件為 web.config。