220608-Nginx重定向的两种配置方式

文章目录
  1. 1. root指定方式
  2. 2. root + rewrite 方式
  3. 3. alias 方式
  4. 4.小结
  • 一灰灰的联系方式
  • 一段时间没有配置过nginx,果不其然之前学到的又还回去了,下面给出基于rewrite/alias的两种重定向配置方式

    需求设置 /ximg 路径下的请求,访问 /home/yihui/html 下的html文件,应该怎么配置?

    1. root指定方式

    最容易想到的就是直接指定root,如下

    1
    2
    3
    4
    location /ximg {
    root /home/yihui/html/;
    index index.html;
    }

    直接使用上面这种方式,访问之后会发现404,此时若再路径 /home/yihui/html/ximg/ 下存在文件 index.html,则可以正常访问

    即上面这种配置,再实际访问文件时,会再 root 配置的路径下 + url请求路径(即上面的ximg)

    所以单纯使用root时,我们需要额外处理的是将希望访问的所有文件,都放在 ximg 目录下

    2. root + rewrite 方式

    当我们希望能直接访问到 /home/yihui/html/ 目录下的文件时,可以考虑结合 rewrite 来重定向实现,如

    1
    2
    3
    4
    location /ximg/ {
    root /home/yihui/html/;
    rewrite ^/ximg/(.*)$ /$1 break;
    }

    上面这个使用正则匹配,实现重定向,这样访问资源时,直接从 /home/yihui/html 下查找了;但是需要注意,若nginx中配置了一个/tt 的规则,此时若访问 /ximg/tt 时,会转到请求 /tt

    3. alias 方式

    直接使用alias来重置文件目录,这样在访问时,不需要补ximg目录

    1
    2
    3
    4
    location /ximg {
    alias /home/yihui/html/;
    index index.html;
    }

    总体来看,这种方式属于最简单的姿势了

    4.小结

    主要针对root + alias两个进行说明

    • root:设置根目录,在实际访问文件时,会在根目录下,查找匹配的path路径下的文件(即path路径需要作为资源的目录树层级)
    • alias:重置当前文件的目录,不需要补path路径

    一灰灰的联系方式

    尽信书则不如无书,以上内容,纯属一家之言,因个人能力有限,难免有疏漏和错误之处,如发现bug或者有更好的建议,欢迎批评指正,不吝感激

    QrCode

    # Nginx

    评论

    Your browser is out-of-date!

    Update your browser to view this website correctly. Update my browser now

    ×