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

来源:https://www.cnblogs.com/himmy/archive/2018/07/25/9365175.html
-Advertisement-
Play Games

最近接到一個需求,客戶希望無論是http還是https請求都可以訪問,並且http能轉換成https。研究了一圈發現iis的重定向和重寫都可以實現http強轉https,記錄一下。 用到的東東: Internet信息服務(IIS)管理器7.0 URL重寫模塊安裝包,下載地址x64(32也有):htt ...


最近接到一個需求,客戶希望無論是http還是https請求都可以訪問,並且http能轉換成https。研究了一圈發現iis的重定向和重寫都可以實現http強轉https,記錄一下。

用到的東東:

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

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

       SSL證書

 

1、我們先來準備證書

①    打開IIS管理控制台,雙擊“伺服器證書”。

②   在彈出的視窗中,單擊右上角“導入”。

 

③    導入證書文件,註意申請證書時如果填寫了密碼,這裡也要輸入相關密碼。

 

2、然後綁定https,讓站點可以接收http和https

①   右擊網站站點,選擇“編輯綁定”

 

②   在彈出的視窗中,單擊“添加”按鈕

 

③   切換類型為https,在證書下拉框中選擇剛剛導入的證書,最後單擊“確認”即可

*SSL設置不要勾選

 

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

重定向

通過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時,匹配規則和條件還是得按照重定向的寫(名字隨便)

 

操作類型是重寫

 

就我此次需求而言,選擇的還是重定向,因為客戶要求地址欄發生變化。

完成。

 


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • //post請求 public static string PostRequest(string url, HttpContent data) { var handler = new HttpClientHandler() { UseCookies = false }; HttpClient cli... ...
  • .Net Core 編碼規範 概述 規範制定原則 方便代碼的交流和維護。 不影響編碼的效率,不與大眾習慣衝突。 使代碼更美觀、閱讀更方便。 使代碼的邏輯更清晰、更易於理解。 術語定義 Pascal 大小寫 將標識符的首字母和後面連接的每個單詞的首字母都大寫。可以對三字元或更多字元的標識符使用Pasc ...
  • 上一篇做了一個smart qq機器人。 前幾天,因為突然上不了 smart qq,以為TX 要拋棄了。。所以就沒有接著完善smart 機器人。應朋友要求,做一個多開微信。 做了幾天已經做好了,理論上最少可以28開微信,最多可以56開微信。同時線上同時收發信息,業務處理等。。(不知道同一個IP多個微信 ...
  • 控制器中的內容: public ActionResult Update(string carid) { Car car = db.Car.Find(carid); if (car == null) { return HttpNotFound(); } return View(car); } 視圖js ...
  • 應用安全除了用戶許可權認證外,還要考慮到數據安全,傳輸安全、系統漏洞等方面。本篇文章重點討論數據存儲安全和傳輸安全,主要技術手段就是加密和解密。 ...
  • //數據 string html = "{\"code\":\"0000\",\"desc\":\"\",\"data\": {\"token\": \"1234567899654\"}}"; //解析 JsonObject jo = (JsonObject)SimpleJson.Deseriali ...
  • 本篇介紹Web系統的應用安全,主要涉及用戶的身份認證和訪問許可權問題。 ...
  • 1、使用編程語言編寫源碼 >編程語言的編譯器(面向Clr) >生成IL代碼和元數據(包含:代碼中聲名的類和成員 以及所引用的成員) 2、IL就被稱之為托管代碼,因為有Clr管理者它的執行 關鍵詞 源碼、語言、語言編譯器、Clr、中間語言IL、元數據 語言就是編寫代碼的使用的語言,有c# F# c++ ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...