IIS重新導向設定

由於最近公司將原本http://www.ite2.com.tw 的網域換成https://www.ite2.com,所以進行了一堆站台的301轉址設定,雖然之前有設定過,但是常常會遺漏一些細節,所以以下會列出幾個時常忘記的設定細節,給大家參考。

A.如何開啟IIS重新導向(Windows Server 2012 R2 )

到控制台點選程式和功能,再選擇右側開啟或關閉Windows功能,會跳出新增角色及功能精靈視窗,然後打開網頁伺服器內的一般HTTP功能內勾選HTTP重新導向功能,然後依照指示完成安裝,然後就會在IIS內看到HTTP重新導向功能了。

如何開啟IIS重新導向(Windows Server 2012 R2 )
如何開啟IIS重新導向(Windows Server 2012 R2 )
如何開啟IIS重新導向(Windows Server 2012 R2 )
如何開啟IIS重新導向(Windows Server 2012 R2 )
如何開啟IIS重新導向(Windows Server 2012 R2 )
如何開啟IIS重新導向(Windows Server 2012 R2 )

B.設定永久轉址

如果需將舊的站台設定永久轉址,必須先開一個新的站台,將舊的網域從原始站台解除繫結,然後轉移繫結到新的站台上,然後再將新的網域設定在原始站台,並設定新站台使用HTTP重新導向功能轉址至原站台。

設定永久轉址
設定永久轉址

C.轉址差異

HTTP 301 / 302 轉址對一版使用者來說幾乎感覺不出差異,其主要的功能是給搜尋引擎來分辨轉址的狀態。

  1. HTTP 301:代表該網站已經永久轉移到另一個地方。通常用於網站搬家或網站改版,新舊版本路徑不相同,且須重新對應的情況。
  2. HTTP 302: 是告知搜尋引擎,這次只是暫時性的被轉址。常見的狀況是網站維護時,暫時原網址轉移到別的地方。

HTTP重新導向設定

打開重新導向功能,會發現只有幾個簡單的設定,如下圖所示,本文將分別說明各設定的用意。

  1. 將要求重新導向至此目的地

這個設定是用來設定要轉址的目標,也就是要轉去的網址,網址的設定規格為

http://目標URL[,Flags] ,其中Flags就如下圖所示,是含有($)的參數,可使用的Flags有四種,以下將分別介紹

  • $S: 將原始URL的後綴(suffix)傳遞給新的URL。
    • 後綴(suffix)的定義是在原始URL及目標URL中去除相同字串後保留在原始URL中的部分文字,例如原始URL為https://www.ite2.com/Home/Index/About,目標URL為https://www.ite2.com,其中的後綴字串為”/About”
  • $P: 將原始URL中的參數(如QueryString)去除問號(?)然後傳遞給新的URL。
  • $Q: 將原始URL中的參數(如QueryString)傳遞到新的URL(包括問號(?))。
  • $V: 傳遞原始的URL但不保留原始域名名稱,也不保留任何參數。如果要包含參數必須 搭配$P或$Q一起使用
  • 下圖中使用的設定為$S$Q的意思是保留後綴及QueryString,例如:
    • 連結 http://www.ite2.com.tw/News.aspx?BID=7126&CID=1會導向至https://www.ite2.com/News.aspx?BID=7126&CID=1
    • $S是為了保留”/News.aspx”,$Q則是保留”?BID=7126&CID=1”
  • 但如果需要換域名的就必須使用$V來進行轉址,例如:要從https://www.ite2.com轉址至https://www.ite2nas.com,其設定舊必須為https://www.ite2nas.com$V
  1. 重新導向行為-將所有要求重新導向至確切的目的地(以下圖中設定導向網址為例)
  • 將所有要求重新導向至確切的目的地 (而非目的地的相對位置)
    • 如果有使用上述Flags參數,必須勾選此項目
    • 不勾選的時候,會導向至相同的路徑,例如:
      • 連結 會導向至
    • 勾選時,會導向至固定的路徑,例如:
      • 連結 會導向至 https://www.ite2.com/
  1. 只將要求重新導向至此目錄 (不是子目錄) 中的內容
  • 勾選時,只有當瀏覽目前目錄時才會導向,子目錄則不會,例如
    • 連結 http://www.ite2.com.tw/ITE2_NAS_ebook/index.html將不會導向
    • 連結 會導向至
  1. 狀態碼
  • 用來設定轉址狀態,如301或302。
設定轉址狀態,如301或302
設定轉址狀態,如301或302

當設定完成後,IIS會自動的去修改web.config的設定,如果覺得使用介面設定比較麻煩的人,也可以直接設定在web.config內,下圖就是上述的設定結果

如果設定都完成了,可以開啟瀏覽器的開發者工具來觀察是否已經轉址完成,下圖為永久轉址(HTTP 301)成功的示意圖。

D.Reference

  • http://oneidia.blogspot.tw/2010/09/simple-http-redirect-with-querystring.html
  • https://msdn.microsoft.com/en-us/library/ms525695(v=vs.90).aspx
  • http://www.developerfusion.com/code/4678/permanent-301-redirect-with-querystring-in-iis/
  • https://zh.wikipedia.org/wiki/HTTP_301
  • https://zh.wikipedia.org/wiki/HTTP_302

Comments

No comments yet. Why don’t you start the discussion?

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料