如何配置htaccess
文件将 android 客户端重定向到一个 URL 并将 iPhone 客户端重定向到另一个?
问问题
6613 次
1 回答
10
你当然可以!您所要做的就是查看用户代理并在满足条件时执行重定向。
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”。文本匹配是使用正则表达式完成的。
每行之后的行RewriteCond
是根据他们的设备进行 URL 重写(在最终用户看来是重定向)的实际规则。该规则说接受整个请求(再次使用正则表达式)并添加到开头/android
or /ios
。您看到的$1
代表正在重写的实际请求字符串。
[NC]
表示匹配不区分大小写(无大小写)。IEAndroid == aNdroid
,IOS == iOS
, 等等...[L]
表示当前规则是最后一条,不执行其他条件或规则。如果您只是在寻找 android 和 ios 设备之间的区别,那么您也许可以使用简单的android
或iphone/ipad/ipod
. 如果您想检测特定设备,则必须更具体地匹配它的用户代理。
于 2012-12-14T18:05:44.257 回答