【问题标题】:Mobile Redirect移动重定向
【发布时间】:2009-03-04 06:21:58
【问题描述】:

我有一个网页,最近有人要求我为其创建移动版本,现在我已经完成了,我被要求进行自动重定向,以便如果用户通过 PDA/iPhone/ 进入网页智能手机/等他/她会自动定向到 m.website.com,但我不知道该怎么做 =/ 我尝试了一些我使用 google 找到的 php 和 javascript,但到目前为止没有任何帮助。你们可以吗?

【问题讨论】:

    标签: redirect mobile


    【解决方案1】:

    查看 WURFL 并为与其移动浏览器用户代理字符串列表匹配的用户代理构建 302 重定向器。

    或者,只需在 User-Agent 中查找 iPhone 并将其重定向到您的 iPhone 站点。其他浏览器的市场份额如此之小,几乎不值得瞄准它们。 iPhone 占移动网络 HTML 流量的 67%。您可以在您的网页上使用 Javascript 来执行此操作。

    【讨论】:

    • 制作那个 MobileSafari,让 iPod touch 用户不会感到被冷落。
    • 另一方面,iPhone 拥有良好的网络浏览器和不错的屏幕,因此通常可以很好地处理“正常”网页。其他移动浏览器,尤其是令人讨厌的 IE Mobile,可能更需要根据自己的需求定制的网站。
    • 好点bobince。对于我们的网站,我们选择从将被重定向到移动版本的移动设备列表中明确排除 iPhone。
    • 我不喜欢否定,但“其他浏览器的市场份额如此之小,几乎不值得瞄准它们。”态度太糟糕了,我不得不说些什么。仅仅因为 iPhone 占据了巨大的市场份额,就将其视为唯一值得开发的可行平台是愚蠢的。手机来来去去,您的移动网站不应被束缚在一台设备上。
    • 我也会将 iPhone 发送到移动网站,如果他们需要,还可以提供指向主网站的链接。移动网站应针对小屏幕设计,并针对慢速连接进行优化。 iPhone 也会喜欢的。
    【解决方案2】:

    我已经发布了“Apache Mobile Filter”的最后一个版本,这个开源项目在前 8 个月内,从 sourceforge 下载了超过 1100 次,我想从 CPAN 下载也是如此。

    Apache 移动过滤器允许您从任何编程语言访问 WURFL,而不仅仅是传统上用于动态移动网站的 Java 和 php。

    模块检测移动设备并将 WURFL 功能作为环境变量传递给其他 Web 应用程序。它还可用于动态调整图像大小以适应移动设备的屏幕尺寸。 试试看,让我知道你的意见。

    欲了解更多信息:http://www.idelfuschini.it/it/apache-mobile-filter-v2x.html

    【讨论】:

      【解决方案3】:

      我写了一个名为“redirection_mobile.js”的JS脚本来解决这个问题。如果您从移动设备访问站点,它会检​​测用户代理并重定向到移动版本。

      在某些情况下,您希望从移动设备重定向到桌面版本(例如使用“转到主站点”链接),脚本会处理该问题,一旦您完成会话,您就可以访问又是手机版。

      您可以在 github 上找到源代码 https://github.com/sebarmeli/JS-Redirection-Mobile-Site,您可以在我的一篇文章中阅读更多详细信息:

      http://blog.sebarmeli.com/2010/11/02/how-to-redirect-your-site-to-a-mobile-version-through-javascript/

      【讨论】:

        【解决方案4】:

        也许如果你列出你的代码不起作用,可以提供更多帮助。

        如果您有 php,则用户代理检测在大多数情况下都能正常工作。

        < ?php
        $browser = strpos($_SERVER['HTTP_USER_AGENT'],"iPhone");
        if ($browser == true) { header(”Location: http://www.example.com/“); }
        }
        ?>
        

        此外,这看起来像是一个骗局: Identifying different mobile handsets and redirecting to different websites

        【讨论】:

        • 制作 MobileSafari,让 iPod touch 用户不会感到被冷落。
        【解决方案5】:

        这里提出并回答了一个非常相似的问题:

        How do I determine whether it's a mobile device with PHP?

        传统的移动设备 通过比较 HTTP 检测 针对列表的 User-Agent 标头 众所周知的移动 UA 字符串。一本小说 方法而是尝试检测 桌面操作系统的存在 - 任何东西 发现不是桌面操作系统 然后必须是移动的。

        这导致更少的错误 积极的。

        我写了一篇带有示例代码的帖子 在 Python 中:

        http://notnotmobile.appspot.com

        检测设备是否为桌面设备 - 如果不是,则重定向到您的移动站点!

        干杯,

        约翰

        【讨论】:

          【解决方案6】:

          一旦您设置了移动子域,请务必参考 A List Apart 中的这篇文章,该文章描述了移动设备对 CSS 属性 media="handheld" 的反应。不幸的是,并非所有人的反应都一样。

          http://www.alistapart.com/articles/returnofthemobilestylesheet

          【讨论】:

            【解决方案7】:

            “Apache Mobile Filter”是“Apache Module Registry”门户(http://modules.apache.org/search.php?id=1787)的模块之一

            【讨论】:

              【解决方案8】:

              我使用http://detectmobilebrowser.com,发现这是最快最简单的方法。它工作得很好。该站点自动生成服务器脚本(php、perl、python、coldfusion、apache、jquery 等),检测移动浏览器并相应地重定向。您可以将代码复制并粘贴到您的索引文件中的某处。

              【讨论】:

              • Chris - 这是对this one 的相同“样板”答案。请确保您的答案适合回答 OP 的具体问题。像这样发布相同的答案会被社区标记为垃圾邮件。此外,如果您与该项目有任何关联,那么您应该披露这一点。谢谢。
              • 嗯...这是一种有趣的观察方式。我刚刚回答了两个基本相同的问题,并试图对两个帖子都有帮助。这东西可以标记为垃圾邮件吗?这是一个有趣的社区。无论如何,我会记住这一点。谢谢。
              【解决方案9】:

              这段 Javascript 代码也可能会有所帮助:

              <script>
                  if( /Android|webOS|iPhone|iPad|iPod|BlackBerry|BB10|IEMobile|Opera Mini/i.test(navigator.userAgent) ) //Specify the mobile devices that you would like this if statement to apply to. 
                  {
                      image_y = document.getElementById('bodyID'); //Get the ID of the body and assign it to a variable.
                      image_y.parentNode.removeChild(image_y); //Remove the body to prevent anything loading on the screen in case there are issues with the window location redirect.
                      window.location = "mobile.html"; //Re-assign the window location to a new html page that is caters for the redirect. 
                  }
              </script>
              

              我把它放在 HTML 正文的开头。

              【讨论】:

                猜你喜欢
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2013-04-22
                • 2013-12-07
                • 2011-11-08
                • 2017-09-21
                • 1970-01-01
                • 1970-01-01
                相关资源
                最近更新 更多