Iis-7
URL-重寫到一個站點但不是另一個
我們有自己的域和幾個子域。其中一個站點只需要通過 SSL 訪問,但人們可以輸入 http 並仍然到達那裡。URL-Rewrite 將 http 強制轉換為 https。
所以我的兩個子域是:
sub1.domain.org
和sub2.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 中
https
,http
我http
設置了這個:<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>