我成功设置了基于设备的移动重定向目录,但客户端希望链接返回完整站点。
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文件放入移动网站的目录中。
当移动网站和主网站使用相同的域名时,是否知道要使用哪些重写条件?或者,如果我为移动网站创建一个单独的域名,这会更容易吗?
答案 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();
}