2017-03-05 66 views
0

試圖訪問域像https://www.example.com當我得到404我得到404修復301條重定向規則不被視爲沒有找到IIS8.5 ASP.NET

我有以下重寫規則:

<rules> 
     <rule name="Redirect-HTTP-HTTPS-IIS"> 
    <match url="(.*)" /> 
    <conditions> 
    <add input="{HTTPS}" pattern="^OFF$" ignoreCase="true" /> 
    </conditions> 
    <action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" /> 
</rule> 

    <rule name="CanonicalHostNameRule1"> 
     <match url="(.*)"/> 
     <conditions> 
     <add input="{HTTP_HOST}" pattern="^example\.com$" negate="true"/> 
     </conditions> 
     <action type="Redirect" url="https://example.com/{R:1}"/> 
    </rule> 
    </rules> 

訪問https://www.example.com將最終到達https://example.com。我的問題是,有些服務像谷歌網站管理員工具驗證無法驗證網站,因爲頁面沒有找到,儘管最後它重定向到https://example.com

http://example.com確實顯示301重定向到https://example.com。只有當我添加www時,它不會顯示301重定向,儘管服務器最終將其重定向到正確的位置。

如何更改我需要使訪問https://www.example.com的寫入規則將被識別爲301重定向到https://example.com。我認爲,由於多個規則的頁面發送沒有找到。

也許有一種方法可以將它編寫爲包含兩個規則的重定向301的單個規則,因此它將使用HTTP或/和WWW將URL重定向到具有HTTPS和非WWW URL的URL。

更新:我檢查鉻網絡和在狀態列中,它說(取消),用於類型文檔,並將其上顯示爲紅色。這可能是由於IIS返回404,因爲具有WWW的域的HTTPS未通過認證。有沒有辦法解決?

使用IIS8.5/ASP.NET 4.5

謝謝。

+0

http://stackoverflow.com/questions/33381095/how-to-dynamically-add-rules-to-iis-rewrite-map似乎與 – Anil

+0

@AnilKumar我不這麼認爲,因爲在客戶端在Chrome開發工具,在'狀態'欄它說(取消)類型'文件) –

+0

我認爲這是與網站綁定 –

回答

1

我需要爲網站的WWW版本創建一個SSL證書。一旦我做到了,重定向就按預期工作。

+1

有關知識,你已經解決你的自我 – Anil

+0

@AnilKumar謝謝,並不是微不足道的,但最終發現了它。 –