我无法找到关于我特别寻找的内容的可靠信息,也不知道这样做的最佳方法(在代码中或使用HTACCESS);将移动用户重定向到http://m.example.com
我希望移动和PC用户能够在两个设备上查看我们的网站,并提供用户友好的布局,以适应两个用户。
答案 0 :(得分:0)
没有HTACCESS的解决方案:
最好的方法是存储有关在Cookie中选择哪种布局的信息。
if(isset($_GET["setMobile"])) {
setcookie("m", $_GET["setMobile"], time()+(60*60*24*31), "/");
}
然后
if($_COOKIE["m"]) {
/* MOBILE LAYOUT */
}
我认为你甚至不需要htaccess。您可以在子文件夹index.php
中创建m.domain.com
,然后放置Cookie定义。
setcookie("m", true, time()+(60*60*24*31), "/");
答案 1 :(得分:0)
解决方案:A:将移动用户重定向到移动版面
通过.htaccess
RewriteEngine On
RewriteCond %{QUERY_STRING} !^desktop
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|googlebot-mobile|iemobile|iphone|ipod|#opera mobile|palmos|webos" [NC]
RewriteRule ^$ http://m.example.com [L,R=302]
=====================
解决方案:B:将移动网站用户重定向到移动设备,从移动设备重定向到桌面
通过PHP会话
<a href="<?php echo $_SERVER['PHP_SELF'], '?desktop=1' ?>">Go to Desktop version</a>
<?php
if(!isset($_SESSION['desktop'])) {
$_SESSION['desktop'] = false;
}
if(isset($_GET['desktop']) && $_GET['desktop'] == 1) {
$_SESSION['desktop'] = true;
}
if(!$_SESSION['desktop']) {
if ( !$detect->isMobile() ) {
header('Location: http://m.example.com/');
}
}
?>
在您的移动网站上,您可以传递desktop = 1的get参数。通常,如果未传递参数,并且未设置会话,则为false。在$ _SESSION ['desktop']的错误值上,您继续运行脚本,以便重定向到移动设备。但是一旦传递了param,它就会将会话更改为true,并且您将不会执行阻止,因此该站点的正常(桌面)内容将可见。