.htaccess移动重定向到子文件夹和桌面视图按钮

时间:2012-06-12 15:14:17

标签: .htaccess mobile desktop

我有一个.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]

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

任何人都可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

对于“查看桌面版本”链接,这应该只是移动网站上的HTML修改,是吗?

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

答案 1 :(得分:0)

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

  RewriteCond %{HTTP_COOKIE} !force_desktop

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

答案 2 :(得分:0)

我不会使用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/