【问题标题】:Detect iPhone browser in .htaccess/apache and redirect to iPhone site在 .htaccess/apache 中检测 iPhone 浏览器并重定向到 iPhone 站点
【发布时间】:2011-03-12 22:15:29
【问题描述】:

是否可以在 .htaccess 中检测 iPhone 浏览器代理并将用户重定向到正确的 iPhone 页面?

【问题讨论】:

  • 是的。 (我不知道具体怎么做,但这不是你的问题;))
  • 在 PHP 中执行 $_SERVER['HTTP_USER_AGENT'] 是浏览器字符串。然后使用位置重定向

标签: iphone apache .htaccess user-agent


【解决方案1】:

当然可以 -

   #redirect mobile browsers
    RewriteCond %{HTTP_USER_AGENT} ^.*iPhone.*$
    RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301]
    RewriteCond %{HTTP_USER_AGENT} ^.*BlackBerry.*$
    RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301]
    RewriteCond %{HTTP_USER_AGENT} ^.*Palm.*$
    RewriteRule ^(.*)$ http://mobile.yourdomain.com [R=301]

取自here

【讨论】:

    【解决方案2】:

    有点谷歌搜索,甚至还有一个方便的生成器。 http://detectmobilebrowsers.mobi/

    【讨论】:

      【解决方案3】:

      要添加到@Tommy 的响应中,如果要通过 URI,请将 RewriteRules 更改为以下内容:

      RewriteRule ^(.*)$ http://mobile.yourdomain.com$1 [R=301]
      

      否则,您会将所有请求重定向到移动主页(尽管这可能是您想要的)。

      【讨论】:

        【解决方案4】:

        这是一个简化的RewiteRule,它将移动用户代理组合成一个条件:

        # Redirect Mobile Devices
        RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|iemobile" [NC]
        RewriteRule ^(.*)$ http://m.example.com/$1 [R=301,L]
        

        您会注意到 [NC] nocase flag 已设置,这会导致 RewriteRule 以不区分大小写的方式匹配。

        也就是说,它不关心用户代理字符串在匹配的 URI 中是大写、驼峰还是小写。 (例如,IPHONE 与 iPhone 与 iphone)。

        【讨论】:

          猜你喜欢
          • 2011-04-19
          • 1970-01-01
          • 1970-01-01
          • 2011-08-17
          • 1970-01-01
          • 2023-01-18
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多