【问题标题】:How do I allow mobile users to bypass the redirect?如何允许移动用户绕过重定向?
【发布时间】:2011-01-21 15:05:27
【问题描述】:

当移动用户查看我的网站时,他们会被重定向到移动版本。我有一个“查看完整”选项,允许他们查看实际站点。问题是当他们这样做时,他们会被重定向回来。是否可以绕过重定向或仅在第一次重定向?

【问题讨论】:

    标签: php redirect mobile


    【解决方案1】:

    据我所知,几乎所有的移动浏览器都支持基本的 cookie。 PHP setcookie (documentation here) 将允许您执行以下操作:

    setcookie('default_view', MOBILE);
    

    MOBILE 是提前定义的。您也可以在此处随意使用字符串。

    好处是一旦设置了这个 cookie,您就不必担心查询字符串。 SLaks' 解决方案将起作用,但您必须注意将 redirect=false 附加到具有重定向检查器的每个 URL。

    【讨论】:

    • 移动设备正在存储 cookie。
    • 我不确定问题是什么。你能澄清一下吗?
    • 我是使用会话完成的。我检查 HTTP_REFERER 以查看我们的移动地址是否在使用 strpos 的地址中。如果是,那么我设置一个会话值。只要会话仍然处于活动状态,他们就可以使用整个站点。如果他们返回移动站点,则会话将被破坏。完美运行!
    【解决方案2】:

    您可以添加查询字符串,例如 ?redirect=false
    在重定向之前,请检查此查询字符串。

    【讨论】:

    • 有没有办法保留这个查询字符串(例如,在服务器配置文件或其他东西中),这样您就不必重构现有的链接?
    • @Steven:那是什么意思? (除了使用 cookie)
    • 好吧,假设应用程序代码有一大堆返回主页的链接(假设现在只对主页的请求进行重定向)。如果在请求中传递了查询字符串,您是否不必手动返回所有这些链接并添加redirect=false
    • @Steven:正确。我不知道 PHP 或 Apache;在输出过滤器中可能会这样做。
    【解决方案3】:

    添加到 SLaks 的答案,您可以添加一个 cookie 'redirect=false'。这样做的好处是,您不必在每个链接上都放置 GET 参数,因此即使在访问了内部链接之后,人们也会停留在正常页面上。

    【讨论】:

    • [COOKIES] 不要依赖 cookie 可用。来自w3.org/TR/mobile-bp/#d0e1925许多旧手机没有cookie。
    • @Christa:没错,依赖 cookie 并不是最好的主意。但它大部分时间都有效,而且很容易实现。
    【解决方案4】:

    我是使用会话完成的。我检查 HTTP_REFERER 以查看我们的移动地址是否在使用 strpos 的地址中。如果是,那么我设置一个会话值。只要会话仍然处于活动状态,他们就可以使用整个站点。如果他们返回移动站点,则会话将被破坏。完美运行!

    【讨论】:

      【解决方案5】:

      我建议你使用数据库。当有人进入您的网站时,请写下每个用户的 IP 以及网站的版本。

      |____ id ______ |网站版本 |

      | 88.75.125.xxx |正常 |

      | 93.108.111.xxx |手机 |

      当用户更改版本时,您可以编辑正确的 id。

      【讨论】:

      • 移动用户通常在代理后面的专用网络上。因此,您将拥有许多具有相同 IP 的不同用户...
      猜你喜欢
      • 2013-08-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-06-10
      • 1970-01-01
      • 2019-06-29
      • 1970-01-01
      • 2019-10-05
      相关资源
      最近更新 更多