NGINX rewrite重定向URI

例如,我想访问http://ip:port/base/page/index.html
我在NGINX配置了location,location匹配静态页面映射到本地目录的某盘某文件夹如D:/resources/;如果这个location我写成匹配/base的话是匹配不到的

因为D盘下的resources直接就是page了,没有base。如果我想访问,我只能在resources下新建base,把page放进去,不想这么干

我想用rewrite重定向,即访问http://ip:port/base/page/index.html时,其实访问的是D:/resources/page/index.html

这个该怎么写?求大神指点

阅读 3.1k
2 个回答

有两种方法:

  1. 使用 nginx alias 指令
location /base/ {
    alias D:/resources/page;     # windows 目录不太确定是不是这样写
}
  1. 使用 rewrite 规则
location /base/ { 
   rewrite ^/base/(.*?)$ /$1 break;

1、

location /base/ {
    alias D:/resources/;#使用 nginx alias 指令
}

2、

location /base/ {
    root D:/resources/
    rewrite ^/base/(.*?)$ /$1 break;#使用 rewrite指令
}

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题