• 109

nginx 返回固定页面(单页应用)

最近使用单页应用,返回index.html 遇到了问题:

需求是这样的:有一个请求:/oper/,不管是/oper/A,/oper/B,/oper/A/B等等,我都想只返回同一个index.html

目前使用try_files能实现,但是他会强制改变请求路径(重定向);

我希望它能保证原始的请求路径不变,如:请求/oper/B之后不会重定向但是还是返回index.html.

谢谢!

补充:我的nginx版本为: 1.12.2
clipboard.png

阅读 7.6k
评论
    2 个回答
    • 2k

    try_files是可以的,不会响应30x跳转

    location /oper/ {
        try_files $uri /index.html;
    }

    也可以用rewrite

    location /oper/ {
        rewrite /oper/ /index.html last;
    }

    对比下两者的优缺点:
    try_files可以兼顾文件存在的情况,不过会多一些磁盘操作
    rewrite无磁盘操作,不过无法兼顾文件存在的情况

    如果是单纯的需要将/oper/开头的所有请求返回/index.html,建议使用rewrite

      location / {
                  rewrite /oper/ /index.html break;
                  root   html;
                  index  index.html index.htm;
              }
        撰写回答

        登录后参与交流、获取后续更新提醒

        相似问题
        推荐文章