2012-05-03 182 views
0

當用戶輸入domain.com時,它應該重定向到我的應用程序https://www.domain.com。目前沒有發生,它正在顯示一個頁面「此連接不可信。」IIS 7.5 URL重定向特定模式

我有以下添加在我的web.config重寫標籤:

 <rewrite> 
      <rules> 
      <rule name="Redirect to HTTPS" stopProcessing="true"> 
       <match url="(.*)" /> 
       <conditions> 
        <add input="{HTTPS}" pattern="^OFF$" /> 
       </conditions> 
       <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="SeeOther" /> 
      </rule> 
     </rules> 
    </rewrite> 

目前在我的IIS 7.5我已經添加入站規則,我必須設置如下:

  1. 在匹配URL

    請求的網址:匹配模式

    使用:Reqular Expre裂變

    模式:(。*)

    忽略大小寫:經過

  2. 條件

    邏輯分組:匹配所有

    輸入:{HTTPS}

    類型:火柴圖案

    帕特RN:^ OFF $

    跨越條件軌道組:未選中

  3. 行動

    動作類型:重定向

    重定向的URL:https:// {HTTP_HOST}/{R 1}

    追加查詢字符串:檢查

    重定向類型:請參見其他(303)

請讓我知道是否可以對現有設置進行更改。

在此先感謝。

+0

如果我輸入URL作爲www.domain.com它工作正常,因爲它正確地重定向到https://www.domain.com。但是,如果我以domain.com的身份輸入URL,則會顯示錯誤頁面爲「連接不可信」。這是因爲iam使用https。 – shakti

回答

3

您的重寫規則只是重定向到相同的域。所以如果用戶只輸入domain.com(默認爲http),它將重定向到https://domain.com。如果您的SSL證書不包含domain.com,但僅包含www.domain.com,則會導致瀏覽器提示有關錯誤證書的警告。儘管現在大多數證書頒發機構都頒發了帶有和不帶www的域的證書(但也許不是)。

如果您希望用戶始終使用https://www.domain.com(總是以www),你應該使用以下重寫規則:

<rule name="Force HTTPS" stopProcessing="true"> 
    <match url="(.*)" /> 
    <conditions logicalGrouping="MatchAll"> 
     <add input="{HTTPS}" negate="true" pattern="^ON$" /> 
     <add input="{HTTP_HOST}" negate="true" pattern="^www\.domain\.com$" /> 
    </conditions> 
    <action type="Redirect" url="https://www.domain.com{REQUEST_URI}" appendQueryString="false" redirectType="Permanent" /> 
</rule> 

這將迫使SSL和將迫使www.domain.com的主機頭。如果沒有,它會發出永久重定向(= beter)到同一個URL。