.htaccess - Android/iOS htaccess 检测和重定向

标签 .htaccess user-agent redirect

如何配置 htaccess 文件将 android 客户端重定向到一个 URL 并将 iPhone 客户端重定向到另一个 URL?

最佳答案

当然可以!您所要做的就是查看用户代理并在满足条件时执行重定向。

RewriteEngine On

RewriteCond %{HTTP_USER_AGENT} "android" [NC]
RewriteRule ^(.*)$ /android/$1 [L,QSA]

RewriteCond %{HTTP_USER_AGENT} "iphone|ipod|ipad" [NC]
RewriteRule ^(.*)$ /ios/$1 [L,QSA]

让我分解一下这里发生了什么。首先,我们确保 RewriteEngine 已打开(v.important)。 RewriteCond 行是必须满足的条件才能强制执行后面的规则。在我们的例子中,条件是在发出请求的设备的用户代理中出现某些关键字。第一个条件匹配单词“android”,第二个条件匹配任何字符串“iphone”、“ipod”、“ipad”。文本匹配使用 regular expressions .

每个 RewriteCond 之后的行是根据他们的设备进行 URL 重写(在最终用户看来是重定向)的实际规则。规则说接受整个请求(再次使用正则表达式)并添加到开头的 /android/ios。您看到的 $1 代表正在重写的实际请求字符串。

  • [NC] 表示匹配不区分大小写(不区分大小写)。 IE Android == aNdroidIOS == iOS等...
  • [L] 表示当前规则为最后一条,不执行其他条件或规则。 如果您只是在寻找 android 和 ios 设备之间的区别,您也许可以使用简单的 androidiphone/ipad/ipod。如果您想检测特定设备,则必须更具体地匹配它的用户代理。

关于.htaccess - Android/iOS htaccess 检测和重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13883955/

相关文章:

.htaccess - htaccess 重定向避免特定域

apache - 为字体设置过期标题不起作用

ios - 如何在 Swift 中设置 UIWebView 的 "User-Agent" header

javascript - 如何将本指南实现到 headless 浏览器 https ://www. npmjs.com/package/user-agents#contributing

safari - Safari浏览器是否有扩展名,可以自动为指定站点切换用户代理

javascript - 新浏览器选项卡或窗口中的 HTML

php - 从 AJAX 加载选项卡重定向父页面

apache - .htaccess mod-rewrite 如何

php - 包含带有 .htaccess 的子文件夹

php - htaccess 规则转发/登录/和/登录到同一页面?