php – 如何让我的移动网站绕过移动重定向?

我成功设置了基于设备的移动重定向目录,但客户端希望链接返回完整站点.

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();
}
点赞