重定向循环在移动设备上而不是在桌面上



我有一个奇怪的重定向循环,它只出现在移动设备上。

我正在使用IIS10&urlrewrite将请求重定向到HTTPS。我安装了一个来自sectigo的SSL证书,并使用了一直适用于我的重定向规则。奇怪的是,它在桌面上运行良好,但在移动设备上却不正常。

我已经测试过这个问题在任何移动设备浏览器中都存在:safari、chrome、firefox以及不同网络中的Android/IOS设备。我已经手动清除了设备上的缓存好几次了,但这并不能解决问题。

在服务器端,我总共有4个绑定IE:

example.com
www.example.com
https://example.com
https://www.example.com

打开服务器标识并为2个HTTPS绑定选择正确的证书文件。URL重写规则为:

<rewrite>
<rules>
<rule name="Redirect to HTTPS" stopProcessing="true">
<match url="(.*)" />
<conditions>
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" />
</rule>
</rules>
</rewrite>

在网站的响应标头中,我添加了一个新条目Name=cache-control Value=no-cache,no-store,这使网站在移动设备上加载。不确定具体是怎么回事,但我认为该网站被永远困在301永久循环中

当我测试重定向规则没有问题时,这真的很奇怪。所以我建议你们启用失败请求跟踪,这样你们就可以看到当你们通过手机访问网站时发生了什么。

没有缓存指示浏览器在每次使用URL的缓存版本之前必须与服务器重新验证。No store指示浏览器和其他中间缓存(如CDN(永远不要存储任何版本的文件。但有些移动设备会忽略标头,如没有缓存、没有存储,您需要在响应中手动设置这些标头,以便浏览器获得正确的URL信息。因为在访问过程中,客户端和服务器不断地来回传输信息。

可能还有其他因素,例如手动清除缓存时未对其进行清理。许多浏览器都有隐姓埋名模式。我建议你试试这种模式。

由于我不认识你的服务器提供商(为了你的信息安全,你不应该告诉我(,所以可能会出现这样的情况。尽管浏览器显示HTTPS,但服务器将其视为HTTP请求。因此,服务器总是认为它正在接收HTTP请求。

为了降低成本[许多托管提供商安装]SSL证书在网关上,而此网关只是将请求重写为将其传递到实际的web服务器时使用标准HTTP。所以到那时该请求命中IIS和您的web应用程序,它是标准的普通请求HTTP请求。有些人以前遇到过这种情况,它不一定是你问题的原因,但你可以参考一下。

相关内容

  • 没有找到相关文章

最新更新