||  網站導覽  ||  留言版
 
  站長 x 管理人
 
  文章分類
    JAVA
    Database資料庫
    應用程式
    文書處理
    normal一般設定
    Web-design網頁設計
       JSP
       不分類
       .net framework
       asp
       php
    Virtual Machine虛擬機器
    MIS網管
    media多媒體
    未分類
 
 
 
 
「實作」iis 強制網站導向到https
 
 
 
 
爬文之後,找到兩種做法

一、使用global.asax
使用SSL網站時,強制http導向到https

<%@ Application Language="C#" %>
 
<script runat="server">
 
protected void Application_BeginRequest()
{
 
if (!Context.Request.IsSecureConnection)
{ Response.Redirect(Context.Request.Url.ToString().Replace("http://", "https://")); }
}
</script>
 
註:會跟「發佈」的「在發佈期間先行編譯」(PrecompiledApp.config)有衝突

二、使用web.config
強迫網站轉向到 HTTPS 加密安全連線 ( IIS URL Rewrite )
請先安裝URL Rewrite2.0模組,我是用Web Platform Installer 2.0來安裝
放到<system.webServer>...</system.webServer>

<!-- 強制導向https -->
<rewrite>
<rules>
<rule name="HTTP to HTTPS redirect" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="off" ignoreCase="true" />
</conditions>
<action type="Redirect" redirectType="Found" 
url="https://{SERVER_NAME}:8443/{R:1}" />
</rule>
</rules>
</rewrite>
 
註:參考的文章都是使用HTTP_HOST,
因為HTTP_HOST帶有port號,
不適用下列兩種情況
1.網站使用非80port
2.導向到非443的https
均會導向錯誤,

建議改用SERVER_NAME加上port號
 
 
 
 
Copyright © 2012 NBOX. All Rights Reserved.