【问题标题】:Detect Mac users - htaccess检测 Mac 用户 - htaccess
【发布时间】:2012-03-29 00:37:54
【问题描述】:

快速搜索显示了许多解释如何检测 iPhone 或 iPad 的指南:

RewriteEngine on
RewriteCond %{HTTP_USER_AGENT} iPhone
RewriteRule .* http://iphone.example.com/ [R]

但是有什么方法可以检测到 Mac 用户(任何浏览器)并重定向他?

【问题讨论】:

  • 我认为你可以做类似 RewriteCont %{Macintosh} mac
  • @Stijn:呃,不。 Apache 没有提供类似的特定于操作系统的标签。你得到一组特定的 HTTP 相关变量,就是这样。
  • @Nimbuz 你终于做到了吗?

标签: php .htaccess redirect


【解决方案1】:

Macintosh UserAgents 看起来像这样:Mozilla/5.0 (Macintosh; U; PPC Mac OS X Mach-O; en-US; rv:1.7.12) Gecko/20050915 Firefox/1.0.7

据我所知,RewriteCond %{HTTP_USER_AGENT} 会寻找你给他的正则表达式。在上述情况下,如果他在 User-Agent 中找到iPhone,则条件测试将返回 true。所以应该可以做这样的事情:

RewriteCond %{HTTP_USER_AGENT} Macintosh
RewriteCond %{HTTP_HOST} ^www.example.com$
RewriteRule ^ http://mac.example.com%{REQUEST_URI} [R]

希望这可行,并希望这会有所帮助:)

【讨论】:

  • 有一个相关问题:stackoverflow.com/questions/228256/…
  • 这可能是由于您的 RewriteRule。我一直在我的本地主机上的答案中测试更新的规则,它运行良好。确保您的 RewriteRule 将首先工作,然后添加 RewriteCond。在我的 sn-p 中,我将 Mac 上尝试浏览我的 www 网站的所有用户重定向到 mac 子域。您也可以将 download.html 重定向到 download-mac.html 或其他内容……但这似乎有点干扰。您对此的具体用例是什么?
  • 这将不起作用,因为您首先将 www.domain.commac.domain.com 重定向到 domain.com(第 5 行),因此,您将永远无法在尝试时捕获 www.domain.com在第 16 行做。你能给我你想要使用的真正的.htaccess 吗?如果您在本地使用该假域名工作,还请确保您具有“*.domain.com”的主机路由。测试此问题的快速解决方法是删除第 4 行和第 5 行。
  • 这就是我正在使用的 htaccess。顺便说一句,删除这些行并添加您的行会使其进入重定向循环。
猜你喜欢
  • 2011-06-14
  • 1970-01-01
  • 2019-02-22
  • 1970-01-01
  • 2014-03-29
  • 1970-01-01
  • 1970-01-01
  • 2023-04-10
  • 1970-01-01
相关资源
最近更新 更多