如何配置 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]
表示匹配不区分大小写(不区分大小写)。 IEAndroid == aNdroid
、IOS == iOS
等...[L]
表示当前规则为最后一条,不执行其他条件或规则。 如果您只是在寻找 android 和 ios 设备之间的区别,您也许可以使用简单的android
或iphone/ipad/ipod
。如果您想检测特定设备,则必须更具体地匹配它的用户代理。
关于.htaccess - Android/iOS htaccess 检测和重定向,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13883955/