我成功设置了基于设备的移动重定向目录,但客户端希望链接返回完整站点.
RewriteEngine on
Options +FollowSymlinks -MultiViews
RewriteBase /
RewriteCond %{HTTP_HOST} ^mysite.com$[NC]
RewriteCond %{REQUEST_URI} !^/mobile/.*$
RewriteCond %{HTTP_USER_AGENT} **{mobile dectection code I removed for this post}**
RewriteRule ^(.*)$/mobile/ [L,R=302]
我将带有rewritengine的.htaccess文件放入移动网站的目录中.
知道当移动和主要网站使用相同的域时,要使用哪些重写条件?或者,如果我为移动网站创建一个单独的域名,这会更容易吗?
最佳答案 你可以添加另一个RewriteCond来检查%{REQUEST_URI}!^ / no-mobile /.*$然后重写/ no-mobile /到/.这将允许想要查看完整网站的移动设备上的用户拥有指向/ no-mobile /的链接.
替代PHP解决方案
如果您的客户想要一种允许移动用户同时使用的方法,您可以使用php.在PHP中执行相同的HTTP_USER_AGENT检查,并在点击您的网站时重定向用户.
如果他们单击“完整站点”按钮,则应将其重定向到/ force-desktop,其中设置$_SESSION [‘no_mobile’] = true.然后,您可以将其合并到初始移动支票中,如下所示:
全site.php:
<?php
session_start();
$_SESSION['no_mobile'] = true;
header('Location: /mobile');
die();
然后在您的网站上加载页面时进行检查(遗憾的是,您必须在任何页面上执行此操作):
if($is_mobile === true && !isset($_SESSION['no_mobile']){
header('Location: /mobile');
die();
}