2016-07-22 62 views
0

我不會問任何其它提供的解決方案的工作對我來說,但他們沒有這樣做。其中部分工作部分沒有,所以我想我會要求包括IIS設置重新綁定的完整解決方案。需要得到一個網站都重定向到www和https

我有一個網站(舊ASP經典)正在被移動到IIS 8(2012)。

該網站從我的hosts文件進行測試時,它的工作原理。

目前我只能把http重定向到https而不是非WWW請求到www.example.com。

所以我有兩個綁定在IIS(80/433)爲www.example.com,我也嘗試過與另一組沒有www。例如example.com,但後來我得到了錯誤,如系統試圖處理您的請求,它不會返回,例如,在一個圓圈等周圍重定向。

我不太確定這是關於這2個綁定或者它的規則變得有點混亂。所以我需要從IIS綁定設置和web.config規則的整個方法(或在IIS 8中有更好的方式強制所有80通信到端口443?)

我已經在我的網絡中有一些ISAPI規則config文件如

<rule name="Order" stopProcessing="false"> 
 
    <match url="^applications/order/?$" /> 
 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
 
    <action type="Rewrite" url="plugins/order.asp" /> 
 
</rule> 
 
<rule name="Robots 1" stopProcessing="false"> 
 
    <match url="^robotstxt\.asp$" /> 
 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
 
    <action type="Rewrite" url="robottxt.asp" /> 
 
</rule> 
 
<rule name="Robots 2" stopProcessing="false"> 
 
    <match url="^robotstxt$" /> 
 
    <conditions logicalGrouping="MatchAll" trackAllCaptures="false" /> 
 
    <action type="Rewrite" url="robottxt.asp" /> 
 
</rule>

所以,當我讀了我看到了有關人們試圖做一次或兩套兩個規則,但它只是從來沒有管理工作敵我我。

我需要非HTTP請求來訪問https 和非WWW請求去www.example.com e.g https://www.example.com

目前其部分工作,但只是因爲我不是非WWW。重定向。

我有兩個綁定www.example.com主機名和這個規則在頂部。

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

因此,所有的規則都工作,包括HTTP到HTTPS。但是我需要非www規則才能工作。

爲了讓它保持我的規則的其餘部分,並讓它也重定向非www。到www.example.com的流量,例如https://www.example.com。做這個的最好方式是什麼。

  1. 我是否需要另外一對綁定設置沒有www。 e.s example.com for 80/443?
  2. 然後,我添加了什麼規則,它們需要以什麼順序作爲int .htacces它們在循環中從上到下處理一個我只是想知道IIS的方式,還有一個邏輯路徑,可能導致它跳過引起無限循環。

對此的任何幫助將不勝感激。

感謝

+0

你確定沒有任何重定向發生在網站本身的編碼?可能是每個頁面上都包含。 – Amos

+0

nope,頁面上根本沒有重定向。我對www.domain.com和domain.com都有https/http綁定。網站上沒有其他事情發生。 – MonkeyMagix

+0

好的,我沒有太多的綁定經驗,但作爲一種解決方法,您可以在每個頁面上包含一個編碼重定向。將include添加到每個頁面的頂部或向現有的include添加一些代碼(只要它包含在將html發送到瀏覽器之前) – Amos

回答

0

我想加入包括是什麼,如果你需要得到在此之上非常迅速,我會做。使用搜索和替換程序添加包括標籤到您的所有網頁:

<!--#include file="redirect.asp"--> 

然後創建「redirect.asp的」用類似下面:

<% 
webDomain=LCase(Request.ServerVariables("HTTP_HOST")) 
scriptname=Request.ServerVariables("SCRIPT_NAME") 
If InStr(webDomain,"https://www.example.com")=0 Then 

    Response.Status="301 Moved Permanently" 
    Response.AddHeader "Location", "https://www.example.com" & scriptname 

End If 
%> 

您可能需要調整這一點,但無論如何它的基本編碼重定向。

相關問題