有网站和服务器。如果网站直接访问服务器,一切正常。该网站要求 .../jobs?limit=50
。
它得到一个 301 并被重定向到 .../jobs/?limit=50
和成功!
现在我们在两者之间添加一个 IIS 。 IIS 会重写 URL。该网站要求 .../jobs?limit=50
。再次获得 301 但它现在仅重定向到 .../jobs/
。
查询字符串丢失。 301 响应的响应标头中的“位置”参数缺少它。
重写规则使用模式 ^(abc.*)
设置,重写 URL 为 http://localhost:1234/{R:1}
。附加 query string 被选中。
回答1
您需要查看 web.config 文件是否包含语句 appendQueryString="true"
一种可能性是,如果默认启用“附加 Query String”复选框,则 web.config 文件可能不包含该语句。您可以尝试先取消选中它,然后再重新选中它。
如果仍然不成功,您可以阅读微软的https://docs.microsoft.com/en-us/dotnet/core/compatibility/aspnet-core/5.0/iis-urlrewrite-middleware-query-strings-are-preserved#recommended-action。并尝试重新安装最新版本的 URL Rewrite Module
。