我们有自己的域和几个子域。其中一个站点只需要通过 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
设置了这个: