4

我成功地设置了基于设备的移动重定向目录,但客户想要一个返回完整站点的链接。

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

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

4

1 回答 1

2

您可以添加另一个RewriteCond进行检查%{REQUEST_URI} !^/no-mobile/.*$,然后重写/no-mobile//. 这将允许想要查看完整站点的移动用户拥有指向/no-mobile/.

替代 PHP 解决方案

如果您的客户想要一种允许移动用户同时使用两者的方法,您可以使用 php.ini。在 PHP 中执行相同的HTTP_USER_AGENT检查并在访问您的站点时重定向用户。

如果他们点击一个Full Site按钮,你应该将他们重定向到/force-desktop你设置的地方$_SESSION['no_mobile'] = true。然后,您可以将其合并到您的初始移动检查中,如下所示:

全站点.php:

<?php

session_start();

$_SESSION['no_mobile'] = true;

header('Location: /mobile');
die();

然后检查何时在您的网站上加载页面(遗憾的是,您必须在任何页面上执行此操作):

if($is_mobile === true && !isset($_SESSION['no_mobile']){
    header('Location: /mobile');
    die();
}
于 2013-08-14T22:57:34.307 回答