正在应用错误的IIS出站重写

正在应用错误的IIS出站重写,iis,url-rewriting,Iis,Url Rewriting,我在反向代理重写方面遇到了很多问题 我们有一个正在工作。我们有我们的实时网站,它将请求传递到我们的业务应用程序网站进行处理,反向代理显示实时网站url 所以。。。。 去 这个很好用 因此,在我的“mywebsite.com”上,我启用了“应用程序”文件夹作为web应用程序。在该目录中,我有以下重写反向代理设置: Inbound Rule, Pattern: (.*) Action Type - Rewrite Rewrite URL: http://businessApp.com/applica

我在反向代理重写方面遇到了很多问题

我们有一个正在工作。我们有我们的实时网站,它将请求传递到我们的业务应用程序网站进行处理,反向代理显示实时网站url

所以。。。。 去

这个很好用

因此,在我的“mywebsite.com”上,我启用了“应用程序”文件夹作为web应用程序。在该目录中,我有以下重写反向代理设置:

Inbound Rule, Pattern: (.*)
Action Type - Rewrite
Rewrite URL: http://businessApp.com/application/{R:1}

Outbound Rule, Matching Scope: Response;   Match the content within: A, Form, Img
Pattern: ^http(s)?://businessApp.com/(.*)
Action Type - Rewrite
Rewrite URL: http:{R:1}://mywebsite.com/{R:2}
由于这段代码的两端都有相同的“application”目录,所以它可以正常工作

新场景

我们正在后端构建一个测试环境,但出于测试原因,我们需要web应用程序在常规web服务器上运行-没有单独的服务器,只是一个不同的URL目录。我们创建了第二个shell目录,称为“application\u test”“当反向代理通过并将其转换为web应用程序时。我们希望这些通信量进入我们的备份开发服务器businessAppDev.com

所以。。。。。当流量来自我们的mywebsite.com/application\u test时,它必须路由到businessAppDev.com/application(注意文件夹名称的不同)

下面是我如何设置不起作用的反向代理规则-

Inbound Rule, Pattern: (.*)
Action Type - Rewrite
Rewrite URL: http://businessAppDev.com/application/{R:1}

Outbound Rule, Matching Scope: Response;   Match the content within: A, Form, Img
Pattern: ^http(s)?://businessAppDev.com/application/(.*)
Action Type - Rewrite
Rewrite URL: http:{R:1}://mywebsite.com/application_test/{R:2}
从application_测试到dev server应用程序文件夹的原始通信似乎工作正常,但返回(出站)通信将定向到“application”文件夹,然后该文件夹将后续交互定向到错误的服务器,该服务器将失败,因为没有在那里进行初始身份验证

为什么它要强制那个目录?另外,我说要记录重写URL。我应该看到调用重写的特定日志条目,还是只看到地址包含在其他日志条目中

我尝试将此前提条件放在“应用程序”出站规则上,以阻止它向该文件夹发送错误流量(这应该是一个条件而不是前提条件)——

这是“应用程序测试”出站规则的前提条件

{HTTP_HOST} Matches the pattern ^businessAppDev.com
所有这些都没有任何区别

Windows Server 2016 IIS 10

增编:

我去了以下网站,很有启发性-


我将出站规则更改为在域根级别操作,将该部分从匹配条件中删除,并将服务器源作为规则的条件,但没有看到任何更改。我的结论是,我可能根本没有捕获和重写该流量,它只是直接路由到匹配的目录。

当某些规则不起作用时,请阅读FRT trace以了解更多信息,@LexLi-ahhh,我明白了。。。。。展开定义“请求失败”的代码以将其记录。听起来不错。谢谢@LexLi-看起来这只适用于入站,我的问题是严格的出站。最终,我们确实有能力在另一个web服务器上运行完全相同的测试环境,这与我们最初被告知的相反,因此不再需要这样做,但我想知道是否有答案。
{HTTP_HOST} Matches the pattern ^businessAppDev.com