IIS 10 URL 重写给出 404 错误

IIS 10 URL 重写给出 404 错误

我目前被重写规则困住了,我需要一些相关提示。

情况如下:我们有两个网站,一个是 website.com,另一个是 website-staging.com(这里只是举例)

在 website.com 上,对于某些 url,我想使用重写规则来访问暂存网站并显示结果。

这是 web.config 文件中的规则:

<rule name="RewriteSearchQueries" patternSyntax="Wildcard" stopProcessing="true">
<match url="search?*" />
<action type="Rewrite" url="https://website-staging.com/{R:0}" logRewrittenUrl="true" />

我做了模式测试,一切正常。用于重写的 URL 工作正常,但是当我点击 website-staging.com/search?arg=1&blabla=2 时,出现了 404 错误消息:

404 - 未找到文件或目录。您正在寻找的资源可能已被删除、名称已更改或暂时不可用。

我确实也尝试采取了以下行动:

<action type="Rewrite" url="https://website-staging.com/search?{R:1}" logRewrittenUrl="true" />

而且也不起作用。有什么线索吗?

编辑:应用程序请求路由已安装,代理已启用。

答案1

所以..按照 Lex Li 的建议安装 FRT 后,我发现没有匹配,因此没有进行 URL 重写。

我确实一次又一次地测试了该模式,一切都很好。

最后,我决定用正则表达式替换通配符,然后……太棒了!成功了。由于我无法解释的原因,通配符模式无法正确检测,尽管模式测试器没有问题,而使用正则表达式却完美地解决了问题。

因此,如果您遇到类似的问题,请一直使用正则表达式!

相关内容