Nginx根据User Agent动态配置root目录适配移动端

不同的在终端(移动端和PC端)请求同一个 url ,需要访问两个不同的目录,这个需求通过 Nginx 判断 User Agent 类型来动态配置 root 目录路径可以方便的实现。

配置代码:

# 根据 User Agent 来判断浏览器类型
map $http_user_agent $is_desktop {
    default 0;
    ~*linux.*android|windows\s+(?:ce|phone) 0; # exceptions to the rule
    ~*spider|crawl|slurp|bot 1; # bots
    ~*windows|linux|os\s+x\s*[\d\._]+|solaris|bsd 1; # OSes
}

# 根据浏览器类型来定义$web_root
map $is_desktop $web_root {
    1 /opt/wwwroot/project/pc/dist;
    0 /opt/wwwroot/project/m/dist;
}

# 配置root为$web_root
server {
    ....
    server_name project.com;
    root $web_root;
    ...
}

注释上写出了配置的三个步骤,动态配置项目 root 目录路径就实现了,当你在PC端访问域名时,会加载 /pc 子目录下的项目,移动端则会加载 /m 目录下的项目,而不需要更换 url ,很方便。

参考:Nginx dynamic location depending on device used

标题:Nginx根据User Agent动态配置root目录适配移动端

原文链接:https://beltxman.com/2732.html

若无特殊说明本站内容为 行星带 原创,未经同意请勿转载。

Scroll to top