Nginx配置移動端和電腦端自動雙向跳轉(zhuǎn)

原文出處 https://shiwenyuan.github.io/post/ck05d728k0000fys6pin2i1eu.html

場景

域名 描述
pc端 www.phpblog.com.cn 用于pc端訪問官網(wǎng)
移動端 m.phpblog.com.cn 用于移動端訪問

需求

在移動端訪問www.phpblog.com.cn和m.phpblog.com.cn都跳轉(zhuǎn)到m.phpblog.com.cn

實現(xiàn)方案

判斷客戶端的設(shè)備類型
要想讓網(wǎng)站適配PC和手機設(shè)備,首先要能做出準(zhǔn)確的判斷。HTTP請求的Header中的User-Agent可以區(qū)分客戶端的瀏覽器類型,可以通過User-Agent來判斷客戶端的設(shè)備。

nginx原始配置

pc配置

server {
    listen       80;
    server_name  www.phpblog.com.cn;
    location / {
        root   www;
        index  index.html index.htm;
    }
}

移動端配置

server {
    listen       80;
    server_name  m.phpblog.com.cn;
    location / {
        root   m;
        index  index.html index.htm;
    }
}

m/index.html

image.png

www/index.html

image.png

nginx修改后配置

pc配置

server {
    listen       80;
    server_name  www.phpblog.com.cn;
    if ($http_user_agent ~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
            rewrite  ^(.*)    http://m.phpblog.com.cn$1 permanent;
        }
    location / {
        root   www;
        index  index.html index.htm;
    }
}

移動端配置

server {
    listen       80;
    server_name  m.phpblog.com.cn;
    if ($http_user_agent !~* (mobile|nokia|iphone|ipad|android|samsung|htc|blackberry)) {
            rewrite  ^(.*)    http://www.phpblog.com.cn$1 permanent;
        }
    location / {
        root   m;
        index  index.html index.htm;
    }
}

此時在pc訪問m.phpblog.com.cn


image.png
可以看到有兩次http請求第一次請求m.phpblog.com.cn發(fā)生了一次重定向 ,重定向到到了www.phpblog.com.cn

此時在pc訪問www.phpblog.com.cn

image.png

可以看到有一次http請求第一次請求

此時在移動端訪問m.phpblog.com.cn


image.png
可以看到有一次http請求第一次請求

此時在移動端訪問www.phpblog.com.cn

image.png

可以看到有兩次http請求第一次請求www.phpblog.com.cn發(fā)生了一次重定向,,重定向到到了 m.phpblog.com.cn

原理

nginx 利用每次http請求過來的瀏覽器ua來區(qū)分是移動端還是pc,然后做相應(yīng)的跳轉(zhuǎn)

相關(guān)文檔

百度的官方建議
國外開源的通過User-Agent區(qū)分PC和手機的解決方案

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容