gpt4 book ai didi

url-rewriting - url 重写为外部 url

转载 作者:行者123 更新时间:2023-12-01 01:14:32 29 4
gpt4 key购买 nike

我正在尝试使用 URL 重写和应用程序请求路由来重写到外部 URL。我设置了以下规则:

<rewrite>
<rules>
<rule name="RewriteExternal" enabled="true" stopProcessing="true">
<match url="patternToMatch/(.*)" />
<action type="Rewrite" url="http://100.100.100.100/{R:1}" appendQueryString="false" logRewrittenUrl="false" />
</rule>
</rules>
</rewrite>

在规则中,“patternToMatch”是我试图匹配的模式,而 100.100.100.100 服务器是我试图重写的外部服务器(在我们的防火墙之外)。我已打开日志记录并看到模式匹配,URL 被适本地重写,但随后我看到 IP 地址为 100.100.100.100 的“ARR_WEBFARM_NOT_ROUTED”。然后将请求重写回原始请求并且请求失败。

我知道对于内部重定向,我可以将内部服务器添加到网络场,但这不适用于外部服务器。是否可以重写到外部服务器?如果是这样,我如何绕过使用网络农场并避免“ARR_WEBFARM_NOT_ROUTED”错误?

谢谢你的帮助。

最佳答案

仅供引用,我知道这是旧的,但这是我的两分钱: ARR_WEBFARM_NOT_ROUTED 可能是“误报”,因为在我的情况下,我有两个本地 IIS 站点,它们具有相同的反向代理规则,一个有效,一个无效。我假设这两个站点都有 ARR_WEBFARM_NOT_ROUTED 条目,因为它们都没有任何实际的 Web 场条目,只有外部站点(尽管我重写的站点也是本地 IIS 站点)。

此外,OP 说“重写”,这在我的工作和非工作站点日志中也是如此,这意味着它也可能不是吸烟枪。

原来我的问题实际上是 ARR 和 MVC 之间的冲突。我原以为在 MVC 之前管道中的 ARR 更高,但不知何故 MVC 介入并尝试路由原始的预先重写的 URL,从而导致 404。我不确定确切的原因,但一种解决方法是告诉 MVC 忽略重写 URL(在 global.asax.cs 或 RouteConfig.cs 中):

routes.IgnoreRoute("rewrite_path_here/{*pathInfo}");

希望能帮助某人。

关于url-rewriting - url 重写为外部 url,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12847938/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com