【问题标题】:.htaccess mobile redirect to subfolder and desktop view button.htaccess 移动重定向到子文件夹和桌面视图按钮
【发布时间】:2012-06-12 23:44:43
【问题描述】:

我有一个包含以下内容的 .htaccess 文件:

RewriteCond %{REQUEST_URI} !^/mobiledirectoryhere/.*$
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC]
RewriteRule ^(.*)$ /mobiledirectoryhere/ [L,R=302]

一切都很好,从手机查看时效果很好 - 它会检测并直接转到移动网站所在的子文件夹。但我想弄清楚的是如何在移动网站底部有一个链接,允许用户查看桌面版本。当他们使用桌面版本时,我希望他们能够重新使用移动设备......

谁能帮帮我???

【问题讨论】:

    标签: .htaccess mobile desktop


    【解决方案1】:

    至于“查看桌面版”链接,应该只是在移动网站上修改HTML吧?

    为了让用户在选择该选项后仍留在桌面网站上,您需要实施一种方法来跟踪他们的客户端偏好,例如 cookie。以下是一些关于在重写规则中添加基于 cookie 的条件的信息:How to do htaccess redirect based on cookie value

    【讨论】:

    • 你知道我怎样才能让视图桌面链接正常工作吗?如果我把它放在那里,它会转到根文件夹,然后直接回到子文件夹,因为这就是 .htaccess 文件中的内容。
    【解决方案2】:

    是的,使用 cookie。您可以使用 [CO] 标志设置它们,并通过 %{HTTP_COOKIE} 条件询问它们,例如将条件添加到规则中

      RewriteCond %{HTTP_COOKIE} !force_desktop
    

    并检测(未)设置的 URI 以清除/设置 cookie。

    【讨论】:

    • 感谢您的回复。但是我不知道如何实现cookie。如果我在移动网站上有一个单独的链接可以转到桌面版,它如何知道如何返回到移动版?
    【解决方案3】:

    我不会使用 cookie,因为这对于首次访问者或 cookie 设置为禁用的用户可能无法正常工作。我会添加一个预定义的 GET 参数,强制网站转到非移动版本。

    一个示例:如果您的域是 www.fancysite.com,则可能是 www.fancysite.com/nomobile。对于“nomobile” URL,您在 .htaccess 中定义自动转发。将此重写规则使用 [L] 条件,以便忽略其他条件。如果“nomobile”字符串不存在,您的(已经工作的)用户代理检测就会启动,并且用户会到达移动网站。

    查看这些以了解一些详细信息(尤其是在“条件”下):

    http://www.addedbytes.com/for-beginners/url-rewriting-for-beginners/

    http://www.cheatography.com/davechild/cheat-sheets/mod-rewrite/

    【讨论】:

      猜你喜欢
      • 2022-01-09
      • 1970-01-01
      • 2021-06-29
      • 1970-01-01
      • 1970-01-01
      • 2014-06-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多