Iis-7

URL-重寫到一個站點但不是另一個

  • February 1, 2015

我們有自己的域和幾個子域。其中一個站點需要通過 SSL 訪問,但人們可以輸入 http 並仍然到達那裡。URL-Rewrite 將 http 強制轉換為 https。

所以我的兩個子域是: sub1.domain.orgsub2.domain.org

因此,如果我輸入

http://sub1.domain.org/page_on_domain1

它被重寫為

https://sub1.domain.org/page_on_domain1

-哪個是對的。但是如果我這樣做(這是不可能的 -page_on_domain1不存在於sub2.domain.org

https://sub2.domain.org/page_on_domain1

我的 url-rewrite 規則似乎工作正常,但我希望最後一個地址給我一個錯誤頁面,因為該頁面在該子域上不存在。

我正在 Windows 7 x64 Pro 上的 Firefox 中對此進行測試。

我的 url-rewrite 規則如下(我是通過 IIS7 GUI 來做的):

Requested URL:  Matches the Pattern:  (*)  Using Regular Expressions (ignore case)
Conditions:  Match All:  Input:  {HTTPS}  Matches the Pattern:  ^Off$
Redirect URL:  https://sub1.domain.org/{REQUEST_URI}

現在,我嘗試將請求的 URL 模式更改為:.*sub1.domain.org/.*但 IIS7 中的正則表達式測試器說它不匹配https://sub1.domain.org - 我不明白這一點。

如何保持 sub1.domain.org 的 http 到 https 的重寫,但對 sub2.domain.org 沒有任何影響?

在我想通過 訪問並重寫到 的特定站點的 web.config 中httpshttphttp設置了這個:

<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="Permanent" />
   </rule>
 </rules>
</rewrite>

引用自:https://serverfault.com/questions/606228