我的要求是, 如果我通过桌面访问网站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]
答案 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>