【发布时间】:2012-03-14 08:40:51
【问题描述】:
目前我有一个使用 LAMP 的常规网站。我想将移动设备的重定向添加到子域,例如:m.mydomain.com
PC 和移动设备的内容之间会有一些内容差异。
最好的方法是什么?可以用 .htaccess 文件完成还是我需要某种 PHP 脚本?
谢谢。
【问题讨论】:
目前我有一个使用 LAMP 的常规网站。我想将移动设备的重定向添加到子域,例如:m.mydomain.com
PC 和移动设备的内容之间会有一些内容差异。
最好的方法是什么?可以用 .htaccess 文件完成还是我需要某种 PHP 脚本?
谢谢。
【问题讨论】:
我认为 .htaccess 会是最快的。你可能会在你的 htaccess 文件中添加这样的内容。
RewriteCond %{HTTP_HOST} ^www\.mydomain\.com [NC]
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteRule ^(.*)$ http://m.mydomain.com/$1 [L,R=302]
【讨论】:
RewriteCond %{HTTP_USER_AGENT} !"android|blackberry|...
RewriteCond %{HTTP_COOKIE} !^.*nomobile=true.*$ [NC]
在您想将平板电脑与手机分开之前,这些答案都可以正常工作。为了获得更好的匹配,您需要类似Handset Detection(免责声明:我的初创公司)之类的东西,它可以按类别(平板电脑/控制台/移动设备)分离设备。您可以使用 API 工具包或在设备上使用 Javascript 检测服务器端。
【讨论】:
嗨,圣诞老人,我发现了这个:
if( navigator.userAgent.match(/Android/i) ||
navigator.userAgent.match(/webOS/i) ||
navigator.userAgent.match(/iPhone/i) ||
navigator.userAgent.match(/iPod/i) ||
navigator.userAgent.match(/BlackBerry/)
){
// some code
}
来源:What is the best way to detect a mobile device in jQuery?
【讨论】:
.htaccess 是最好的解决方案,因为它在 apache 级别执行重定向。