不同的在终端(移动端和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