iis - 如果网站和服务器之间有IIS,301重定向请求丢失query string

有网站和服务器。如果网站直接访问服务器,一切正常。该网站要求 .../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

相似文章

最新文章