需要帮助创建htaccess规则。使用查询字符串将移动用户重定向到桌面站点

时间:2014-09-10 10:55:40

标签: .htaccess

我的要求是, 如果我通过桌面访问网站www.example.com显示我的桌面页面,每当我通过手机打开www.example.com时,都会向我显示移动页面。

我使用以下规则做到了这一点。

<IfModule mod_rewrite.c>
    Options +FollowSymlinks
    RewriteEngine On
    RewriteBase /
    RewriteCond %{HTTP_USER_AGENT} (android|blackberry|googlebot-mobile|iemobile|iphone|ipod|opera\ mobile|palmos|webos) [NC]
RewriteCond %{REQUEST_FILENAME} !-s
RewriteCond %{REQUEST_FILENAME} !-d
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_URI} !/styles
RewriteRule  ^(.*)$ http://mob.example.com/$1  [L,P]

现在我想如果我通过移动设备访问www.example.com它的开放移动页面,并且在该移动页面中有一个名为查看桌面网站的链接,我希望每当我点击该链接时它将为我打开桌面页面我的手机。 query_string是force = desktop。 我试过以下规则,但确实没有工作

<IfModule mod_rewrite.c>
Options +FollowSymlinks
RewriteEngine On
RewriteCond %{QUERY_STRING} force=desktop   
RewriteCond %{HTTP_USER_AGENT} (android|blackberry|googlebot-mobile|iemobile|iphone|ipod|opera\ mobile|palmos|webos|Android) [NC]
RewriteRule ^(.*)$ http://www.example.com/$1 [R=302]

1 个答案:

答案 0 :(得分:0)

你的规则如下:

<IfModule mod_rewrite.c>
    Options +FollowSymlinks -MultiViews
    RewriteEngine On

    # force desktop version for mobile agents
    RewriteCond %{HTTP_USER_AGENT} (android|blackberry|googlebot-mobile|iemobile|iphone|ipod|opera\ mobile|palmos|webos|Android) [NC]
    RewriteRule ^(.*)$ http://www.example.com/$1?force=desktop [R=302,L,NE,QSA]

    RewriteCond %{QUERY_STRING} !force=desktop
    RewriteCond %{HTTP_USER_AGENT} (android|blackberry|googlebot-mobile|iemobile|iphone|ipod|opera\ mobile|palmos|webos) [NC]
    RewriteCond %{REQUEST_FILENAME} !-s
    RewriteCond %{REQUEST_FILENAME} !-d
    RewriteCond %{REQUEST_FILENAME} !-f
    RewriteCond %{REQUEST_URI} !/styles
    RewriteRule  ^(.*)$ http://mob.example.com/$1  [L,P]

</IfModule>