IIS將http強轉爲https(重定向和重寫)

最近接到一個需求,客戶但願不管是http仍是https請求均可以訪問,而且http能轉換成https。研究了一圈發現iis的重定向和重寫均可以實現http強轉https,記錄一下。html

用到的東東:api

  Internet信息服務(IIS)管理器7.0瀏覽器

       URL重寫模塊安裝包,下載地址x64(32也有):http://www.microsoft.com/downloads/details.aspx?displaylang=zh-cn&FamilyID=1b8c7bd8-8824-4408-b8fc-49dc7f951a00服務器

       SSL證書post

 

一、咱們先來準備證書測試

①    打開IIS管理控制檯,雙擊「服務器證書」。網站

②   在彈出的窗口中,單擊右上角「導入」。url

 

③    導入證書文件,注意申請證書時若是填寫了密碼,這裏也要輸入相關密碼。spa

 

二、而後綁定https,讓站點能夠接收http和https3d

①   右擊網站站點,選擇「編輯綁定」

 

②   在彈出的窗口中,單擊「添加」按鈕

 

③   切換類型爲https,在證書下拉框中選擇剛剛導入的證書,最後單擊「確認」便可

*SSL設置不要勾選

 

三、接下來進入正題,記錄一下重定向和重寫的實現方式

重定向

經過url規則匹配重定向到新的url中,使用瀏覽器打開連接時,視覺上會看到http變成https,就好像打開http://www.baidu.com,連接會變成https://www.baidu.com

我這邊站點上掛了三個子站點,Api爲接口,其餘兩個爲後臺系統、H5

 

若是把重定向的規則創建在Sites上的話,下面的子站點將都適用於此規則,可是

弊端:對api進行post請求,url被重定向到新的地址上,因爲是重定向跳轉,因此post請求會變成get請求,會出現問題。

解決辦法:若是不是全部都須要http強轉https,重定向規則就不要設置到總站點上,哪裏須要建哪裏就好

好了,咱們開始建立重定向規則

①   安裝好URL重寫模塊成功後,在WeiSitesWeixinPlat站點分別添加URL重寫入站規則

單機須要創建規則的站點(以WeiSites爲例),雙擊「URL重寫」,在右邊窗體中選擇「添加規則」,並添加一個空白規則,以下所示:

 

②   添加如下規則,如圖所示(名字隨意):

模式:

(.*)

條件:

{HTTP} 與模式匹配  ^OFF$

{HTTP_HOST} 與模式不匹配 ^(localhost) 

③   填寫結束以後點擊右上角的「應用」便可。

 

重定向完成,在瀏覽器輸入你要訪問的連接,若是是http,就會重定向到https了。須要作其餘的重定向,修改規則就能夠了,仍是很強大的

 

匹配規則取得是當前站點後面的路徑,因此規則不可直接寫http替換成https

 

重寫URL

 經過url規則匹配重寫url,使用瀏覽器打開連接時,視覺上不會看到變化

舉個最簡單的例子,如今有一個index.html,可是我但願在瀏覽其中輸入index.himmy就能瀏覽到這個頁面,且地址欄不會看到請求路徑的變化。像以前作.aspx重寫成.html仍是很常見的。

新建一個空白入站規則

咱們來測試下這個模式

咱們能夠看到咱們的請求被拆分了幾塊,{R:1}就是咱們須要截取的那部分,咱們繼續

操做中設置重寫的url,將{R:1}和html拼接,就能夠了。訪問該網站時,himmy就會被替換成html,地址欄時看不到變化的。

同理,http重寫成https用重寫也是能夠的,看需求定了。因爲http和https是請求頭,因此須要和重定向同樣設定,看下面。

 

總站點匹配規則取得是「/」後面的路徑

子站點匹配的是站點後面的路徑

因此在實現http重寫成https時,匹配規則和條件仍是得按照重定向的寫(名字隨便)

 

操做類型是重寫

 

就我這次需求而言,選擇的仍是重定向,由於客戶要求地址欄發生變化。

完成。

相關文章
相關標籤/搜索