如何在设置Cookie后访问www.example.com
时重定向到www.example.com?mobile=0
?
<IfModule mod_rewrite.c>
RewriteBase /
RewriteEngine On
# Check if mobile=1 is set and set cookie 'mobile' equal to 1
RewriteCond %{QUERY_STRING} (^|&)mobile=1(&|$)
RewriteRule ^ - [CO=mobile:1:%{HTTP_HOST}]
# Check if mobile=0 is set and set cookie 'mobile' equal to 0
RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
RewriteRule ^ - [CO=mobile:0:%{HTTP_HOST}]
# cookie can't be set and read in the same request so check
RewriteCond %{QUERY_STRING} (^|&)mobile=0(&|$)
RewriteRule ^ - [S=1]
# Check if this looks like a mobile device
RewriteCond %{HTTP:x-wap-profile} !^$ [OR]
RewriteCond %{HTTP_USER_AGENT} "android|blackberry|ipad|iphone|ipod|iemobile|opera mobile|palmos|webos|googlebot-mobile" [NC,OR]
RewriteCond %{HTTP:Profile} !^$
# Check if we're not already on the mobile site
RewriteCond %{HTTP_HOST} !^m\.
# Check to make sure we haven't set the cookie before
RewriteCond %{HTTP:Cookie} !\mobile=0(;|$)
# Now redirect to the mobile site
RewriteRule ^ http://m.example.com%{REQUEST_URI} [R,L]
</IfModule>
此代码的作用是将www.example.com
重定向到m.example.com
,如果是从移动设备访问,而不是在访问www.example.com?mobile=0
时将设置Cookie以保持用户在主站点上甚至在移动设备上也是如此。
我想在设置阻止重定向的Cookie后,将www.example.com?mobile=0
的302重定向添加到干净的网址www.example.com
。
答案 0 :(得分:1)
在现有规则的末尾附加此规则:
RewriteCond %{THE_REQUEST} ^[A-Z]{3,}\s/+\?mobile=0[\s&] [NC]
RewriteRule ^ /? [R=302,L]