我目前被重写规则困住了,我需要一些相关提示。
情况如下:我们有两个网站,一个是 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 重写。
我确实一次又一次地测试了该模式,一切都很好。
最后,我决定用正则表达式替换通配符,然后……太棒了!成功了。由于我无法解释的原因,通配符模式无法正确检测,尽管模式测试器没有问题,而使用正则表达式却完美地解决了问题。
因此,如果您遇到类似的问题,请一直使用正则表达式!