目前,我正在将网址从PC重定向到移动设备。
RewriteRule ^ http://m.example.com%{REQUEST_URI}? [R=301,L]
上面代码的问题是它削减了吗?重定向到移动网址时所有查询字符串
现在,在将http://www.example.com/bangkok/
(原http://www.example.com/jobs-list-province.php?p_name=bangkok
)的网址重写为
http://m.example.com/bangkok/
但是它需要通过查询字符串发送的URL有问题,例如:
http://www.example.com/keyword-search.php?s_keyword=analyst
重定向到http://m.example.com/keyword-search.php
而不是h ttp://m.example.com/keyword-search.php?s_keyword=analyst
所以我尝试使用此代码解决问题
RewriteRule ^ http://m.example.com%{REQUEST_URI}? [QSA,R=301,L]
或者此代码
RewriteRule ^ http://m.example.com%{REQUEST_URI} [R=301,L]
当我使用上面的代码时,它有重定向问题
http://www.example.com/bangkok/
代替:http://m.example.com/bangkok/?p_name=bangkok
。
我如何重写呢?
http://www.example.com/bangkok/
转到http://m.example.com/bangkok/
和
http://www.example.com/keyword-search.php?s_keyword=analyst
转到http://m.example.com/keyword-search.php?s_keyword=analyst
有关详细信息,请参阅随附的htaccess文件。谢谢您的帮助。
#Redirect to www location
RewriteEngine on
RewriteBase /
rewritecond %{http_host} ^example.com [nc]
rewriterule ^(.*)$ http://www.example.com/$1 [r=301,nc]
rewriterule ^(bangkok)$ /jobs-list-province.php?p_name=$1
# 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|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(;|$) [NC]
RewriteRule ^ http://m.example.com%{REQUEST_URI}? [R=301,L]
答案 0 :(得分:0)
你需要做两件事:
(您已经尝试过)是从
中删除问号 RewriteRule ^ http://m.example.com%{REQUEST_URI}? [QSA,R=301,L]
因为它阻止查询字符串传递不变。
移动此规则:
rewriterule ^(bangkok)$ /jobs-list-province.php?p_name=$1
到底,因为你不希望你的规则混合。首先处理重定向到移动网站,然后检查/bangkok
重写