# nginx rewrite重写路径
先看配置:
location / {
root /Users/cheng/iFly/zhong_wu_liu/aicc-flint-zwl/;
rewrite ^/iflytek/aicc-flint/(.*)$ /skybox-aicc-flint/$1 break;
expires 1h;
try_files $uri $uri/ /skybox-aicc-flint/index.html;
error_page 404 /skybox-aicc-flint/index.html;
}
1
2
3
4
5
6
7
2
3
4
5
6
7
当我们访问http://localhost:21000/iflytek/aicc-flint/train/pre-train ,会发生什么?
首先是命中location / 规则
第二步 rewrite 生效
此时路径 /iflytek/aicc-flint/train/pre-train 会被 rewrite 成:/skybox-aicc-flint/train/pre-train
所以这里rewrite的作用就是把URI中的虚拟路径(实际文件路径中不存在的)给去掉
最终访问的文件路径就是root拼上/skybox-aicc-flint/train/pre-train
# alias + try_files 的安全写法
location /agent/smart-office/ {
alias /usr/share/nginx/plugin_ui/agent/;
index index.html index.htm;
try_files $uri $uri/ /index.html;
}
1
2
3
4
5
2
3
4
5
这里 /index.html 直接对应 alias 指向的目录,这是最推荐的方式。