【发布时间】:2012-09-13 11:46:57
【问题描述】:
我有一个 ASP.NET“桌面友好”网站 (www.company.com) 和一个单独的“移动友好”网站 (m.company.com)。两个站点都有重定向规则,尝试检测设备是台式机还是移动设备,并将请求重定向到适当的站点。
移动网站上有一个“查看完整网站”链接。这将为父域 (.company.com) 设置会话 cookie(值为“1”)并将用户发送到桌面站点。当桌面站点上的重定向系统检测到 cookie(它可以读取,因为 cookie 属于父域)时,它会跳过将移动设备重定向到移动站点的常规规则。
这一切都很好......除了 iPhone 上的 Safari!
仅对于此平台,一旦单击链接,您就不会被重定向到桌面站点,并且在移动站点中的所有进一步导航都会导致错误“Safari 无法打开页面,因为发生了太多重定向”。如果您转到 iPhone 的 Safari 设置并单击清除 Cookies 会恢复正常,但一旦您单击“查看完整站点”链接,问题就会再次出现。
我的第一个想法是重定向系统发出交替的 301 重定向 - 即创建一个重定向循环。但是,在附加调试器的情况下,我可以看到这并没有发生。没有发出请求和重定向流 - 事实上没有一个!! 几乎就像 Safari 正在向自己发出重定向指令。
这似乎是 iPhone with dozens of reports on various user forums of it happening on many sites 上 Safari 的常见问题。大多数用户报告说它只发生在他们的 iPhone 上,而不是例如。在他们的 iPad 上。
由于服务器似乎不对问题负责,我正在为该怎么做而摸不着头脑!到目前为止,我唯一的想法是隐藏 iPhone 的“查看完整站点”链接,或者尝试使用基于非 cookie 的重定向绕过。
谁能解释原因和/或解决方案?
【问题讨论】:
标签: iphone asp.net redirect cookies safari