转载:https://blog.csdn.net/hmx224_2014/article/details/108379452
场景(其实也是301重定向的场景)
端 域名 描述
pc端 www.ekanshu.com.cn 用于pc端访问官网
移动端 m.ekanshu.com.cn 用于移动端访问
需求
在移动端访问www.ekanshu.com.cn和m.ekanshu.com.cn都跳转到m.ekanshu.com.cn
实现方案
判断客户端的设备类型
要想让网站适配PC和手机设备,首先要能做出准确的判断。
HTTP请求的Header中的User-Agent可以区分客户端的浏览器类型,可以通过User-Agent来判断客户端的设备。
其他方案
利用前端js和后端nginx配合,js通过设置cookie来设定当前访问哪页面。
增加设置cookie的js代码,这段代码需要在移动网站和PC网站的所有页面都要放置。
##PC配置
server {
listen 80;
server_name www.ekanshu.com.cn;
if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
rewrite ^(.*) http://m.ekanshu.com.cn$1 permanent;
}
# 如果是手机移动端访问内容
if ( $http_user_agent ~ "(MIDP)|(WAP)|(UP.Browser)|(Smartphone)|(Obigo)|(Mobile)|(AU.Browser)|(wxd.Mms)|(WxdB.Browser)|(CLDC)|(UP.Link)|(KM.Browser)|(UCWEB)|(SEMC\-Browser)|(Mini)|(Symbian)|(Palm)|(Nokia)|(Panasonic)|(MOT\-)|(SonyEricsson)|(NEC\-)|(Alcatel)|(Ericsson)|(BENQ)|(BenQ)|(Amoisonic)|(Amoi\-)|(Capitel)|(PHILIPS)|(SAMSUNG)|(Lenovo)|(Mitsu)|(Motorola)|(SHARP)|(WAPPER)|(LG\-)|(LG/)|(EG900)|(CECT)|(Compal)|(kejian)|(Bird)|(BIRD)|(G900/V1.0)|(Arima)|(CTL)|(TDG)|(Daxian)|(DAXIAN)|(DBTEL)|(Eastcom)|(EASTCOM)|(PANTECH)|(Dopod)|(Haier)|(HAIER)|(KONKA)|(KEJIAN)|(LENOVO)|(Soutec)|(SOUTEC)|(SAGEM)|(SEC\-)|(SED\-)|(EMOL\-)|(INNO55)|(ZTE)|(iPhone)|(Android)|(Windows CE)|(Wget)|(Java)|(curl)|(Opera)" )
{
root /usr/local/website/mobile;
}
location / {
root www;
index index.html index.htm;
}
##移动端配置
server {
listen 80;
server_name m.ekanshu.com.cn;
if ($http_user_agent !~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
rewrite ^(.*) http://www.ekanshu.com.cn$1 permanent;
}
location / {
root m;
index index.html index.htm;
}
}