【问题标题】:Safari on iPhone "... too many redirects occurred" but ASP.NET app is not issuing any 301 redirectsiPhone 上的 Safari “...发生了太多重定向”,但 ASP.NET 应用程序未发出任何 301 重定向
【发布时间】: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


    【解决方案1】:

    您应该查看 .htaccess 文件。

    我在 .htaccess 中有一个简单的重定向写入,它阻止了在 Safari 上加载。因此:

    RewriteEngine On
    RewriteCond %{HTTPS} off
    RewriteRule (.*) https://%{HTTP_HOST}%{REQUEST_URI} [R=301,L]
    

    虽然,这不是一个修复,它是一个补丁。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-02-25
      • 1970-01-01
      相关资源
      最近更新 更多