我目前坚持我的重写规则,我需要一些关于它的提示。
情况是这样的:我们有两个网站,一个是 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" />
它也没有工作。有什么线索吗?
编辑:应用程序请求路由已安装,代理已启用。
所以.. 按照 Lex Li 的建议安装 FRT 后,我看到没有匹配项,因此没有进行 URL 重写。
我做了一次又一次的模式测试,一切都很好。
最后,我决定用正则表达式替换通配符,并且.. Tadam !有效。由于一个我无法解释的原因,通配符模式没有被正确检测到,尽管模式测试器没问题,而使用正则表达式完美地做到了这一点。
因此,如果您遇到类似的问题,请一直使用正则表达式!