如何启用移动网站以绕过移动重定向?

时间:2013-08-14 22:51:02

标签: php regex .htaccess

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

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文件放入移动网站的目录中。

当移动网站和主网站使用相同的域名时,是否知道要使用哪些重写条件?或者,如果我为移动网站创建一个单独的域名,这会更容易吗?

1 个答案:

答案 0 :(得分:2)

您可以添加其他RewriteCond来检查%{REQUEST_URI} !^/no-mobile/.*$,然后将/no-mobile/重写为/。这将允许想要查看完整网站的移动设备上的用户拥有指向/no-mobile/的链接。

替代PHP解决方案

如果您的客户想要一种允许移动用户同时使用的方法,您可以使用php。在PHP中进行相同的HTTP_USER_AGENT检查,并在点击您的网站时重定向用户。

如果他们点击Full Site按钮,您应该将其重定向到/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();
}