我想重写一个子域,因此它作为查询字符串传递给一个站点。采取以下方案。
IIS配置:
站点A(绑定:*,site-a.com)
站点B(绑定:site-b.com)
重写规则:
"sub1.site-a.com" -- rewrite to -> "site-a.com"
"sub2.site-a.com" -- rewrite to -> "site-a.com"
"sub1.site-b.com" -- rewrite to -> "site-b.com?subdomain=sub1"
"sub2.site-b.com" -- rewrite to -> "site-b.com?subdomain=sub2"
如果我在IIS服务器设置中制作重写规则,site-a.com将捕获所有重写,因为原始url与site-a.com上的默认绑定匹配,而不是匹配重写的URL的绑定。这种行为有什么办法吗?
答案 0 :(得分:1)
如果你要在前面放置一个反向代理,比如说Apache,这可以用mod_rewrite。
我认为在IIS中没有任何明确的方法可以做到这一点。
答案 1 :(得分:0)
您需要两个IP地址或在网站中移动部分重定向逻辑。
第二种解决方案可能无法接受,因此请获取第二个IP地址。这是合理的,所以你不会有任何问题得到它。
答案 2 :(得分:0)
解决方案是在ARR(应用程序请求路由)中使用代理。当您使用“http://”编写重写规则时,它将通过ARR路由。问题解决了。