有沒有一種乾淨的方式來重定向所有嘗試去HTTP:/ /版本的網站到其HTTPS:/ /等效?IIS7:HTTP-> HTTPS Cleanly
回答
我認爲最簡潔的方式是描述here on IIS-aid.com。它只是web.config,所以如果你改變服務器,你不必記住你通過403.4自定義錯誤頁面或其他特殊權限所經歷的所有步驟,它只是工作。
<configuration>
<system.webServer>
<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://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>
這是完美的,對於獎勵積分來說,它是完全獨立的,因此您不必按照接受的答案中所述創建新網站 – WickyNilliams 2012-06-28 10:42:36
這會針對所有網址觸發,而不管文件類型如何。例如一個txt文件的直接URL? – Cheekysoft 2013-08-27 16:27:09
我認爲'乾淨'你的意思是像300重定向。配置很多服務器&語言here。
一個乾淨的方式只改變http - > https的URL方案,並保持一切等價。它應該是服務器端,所以沒有瀏覽器問題。
JPPinto.com的Step-By-Step instructions關於如何完成,除了他們使用JavaScript(HttpRedirect.htm)而不是服務器端重定向。出於某種原因,如果您啓用了「顯示友好HTTP錯誤消息」,則默認情況下,我無法使IE運行JavaScript。腳本的另一件事是即使在FF或Chrome中,重定向到路徑也不起作用。腳本總是重定向到根。 (也許我錯過了一些東西,因爲它應該重定向到路徑。)
由於這些原因,我使用了ASP頁面進行重定向。不利的一面是,這需要在服務器上啓用傳統的ASP。
OpsanBlog有一個ASP script and instructions,可以很好地與IIS6配合使用。
我在使用IIS7的這個方法時遇到了一些問題。用戶界面主要問題,因爲IIS7使它很容易錯過任何東西。
- 首先,您需要安裝ASP作爲 Web服務器角色功能。
- 二,使用虛擬目錄並沒有 按預期在IIS7中工作,我沒有 試圖調試這個。相反,我將該文件放在網站的根文件夾中,並使用 403.4錯誤頁面中的url'/SSLRedirect.asp'來引用它。
- 最後,最棘手的部分,您不得爲SSLRedirect.asp強制執行SSL。否則,你會得到一個403.4錯誤。爲此,請在IIS7的「內容視圖」中選擇該文件,然後切換到「功能視圖」,以便您可以編輯單個文件的SSL設置並禁用「需要SSL」複選框。
IIS管理器應該在標題中顯示文件名。
JPPinto.com上的鏈接指令已更新,以突出顯示這不適用於IIS 7.5或R2。他們說,由於更新版本的IIS中的安全性更改,您將會受到鎖定違規。他們建議使用URL Rewrite 2.0方法(類似於@toxaq的答案)。 – AussieRob 2016-02-15 04:22:35
最簡單,乾淨的解決方案,我發現是
在SSL設置 - >需要SSL
錯誤頁面 - >在403.4錯誤 - >重定向到HTTPS網站
在錯誤頁面 - >編輯功能設置... - >設置本地請求的詳細錯誤和遠程請求的自定義錯誤頁面
好處是它不需要額外的代碼行。 缺點是它會將您重定向到絕對網址。
的Global.asax
protected void Application_BeginRequest()
{
if (!Context.Request.Url.AbsoluteUri.Contains("localhost") && !Context.Request.IsSecureConnection)
Response.Redirect(Context.Request.Url.ToString().Replace("http:", "https:"));
}
- 1. 重寫規則https:// www到https:// IIS7
- 2. IIS7 HTTPS 301重定向
- 3. Cleanly interupt HttpListener的BeginGetContext方法
- 4. 從https重寫URL://到http://在IIS7
- 5. IIS7 HTTPS重定向到http除了
- 6. IIS7重寫http和http:// www到https
- 7. 如何在IIS7配置WCF服務:HTTPS,會話的wsHttpBinding(SOAP)
- 8. 強制HTTPS並避免使用IIS7 URL重寫模塊
- 9. HTTPS影響IIS7上的多個http站點
- 10. 軟件NLB'd IIS7集羣上的HTTPS的多個證書
- 11. Powershell IIS7管理單元將SSL證書分配給https綁定
- 12. 如何設置301在iis7中從http重定向到https
- 13. IIS7重寫規則重定向http://example.com加入https://www.example.com
- 14. IIS7:如何將SSL證書綁定到Https主機頭?
- 15. IIS7 URL過濾
- 16. 無法從IIS7
- 17. FileNotFoundException IIS7
- 18. IIS7上
- 19. 託管WCF IIS7上
- 20. 多IIS7 URL重寫規則
- 21. IIS7 - URL重寫問題
- 22. IIS7 URL重寫:如何不從重寫的URL中刪除HTTPS協議?
- 23. 如何在IIS7最佳的設置不同版本的網站(基於HTTPS)
- 24. 我可以使用IIS7 ARR將HTTPS請求路由到HTTP應用程序嗎?
- 25. iis7 asp.net mvc webapi rewrite
- 26. IIS7 - 401.3錯誤
- 27. 問題與IIS7
- 28. 力IIS7建議
- 29. Web部署IIS7
- 30. 在IIS7 .NET MVC
的回答能對詹姆斯科瓦奇的博客上找到:http://jameskovacs.com/2007/05/09/how-to-autoredirect-to-a-sslsecured-site- in-iis/ – cpuguru 2011-03-08 19:33:45
如果您在IIS 7和R2上[此處](http://www.jppinto.com/2010/03/automatically-redirect-http-requests-to-https-on-iis7-using- url-rewrite-2-0 /)是一個指南,它的工作原理和最「乾淨」的 – 2012-09-21 15:37:08