【问题标题】:How do I enable my mobile website to bypass mobile redirect?如何让我的移动网站绕过移动重定向?
【发布时间】:2013-08-17 02:35:46
【问题描述】:

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

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]

我将一个.htaccess 文件与rewritengine off 放到移动网站的目录中。

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

【问题讨论】:

    标签: php regex .htaccess


    【解决方案1】:

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

    替代 PHP 解决方案

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

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

    全站点.php:

    <?php
    
    session_start();
    
    $_SESSION['no_mobile'] = true;
    
    header('Location: /mobile');
    die();
    

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

    if($is_mobile === true && !isset($_SESSION['no_mobile']){
        header('Location: /mobile');
        die();
    }
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-03-19
      相关资源
      最近更新 更多