Redirect 如何使用ngnix重定向到多个子域并显示错误页面?

Redirect 如何使用ngnix重定向到多个子域并显示错误页面?,redirect,nginx,rewrite,server,Redirect,Nginx,Rewrite,Server,在nginx中,我无法满足以下所有条件: 当访问root时,即/,重定向到/blog 访问/app时,请停留在/app 当访问任何其他内容时,例如,/fake/directory,显示404页面 通常情况下,这两种方法的结合会起作用,但第三种方法不行 我尝试了try_文件以不同的位置按一定的顺序,返回,以及重写,但缺少一些细节 我认为以下方法可行: location = / { rewrite / /blog; } location ~ /blog.* { # desired opti

nginx
中,我无法满足以下所有条件:

  • 当访问root时,即
    /
    ,重定向到
    /blog
  • 访问
    /app
    时,请停留在
    /app
  • 当访问任何其他内容时,例如,
    /fake/directory
    ,显示404页面 通常情况下,这两种方法的结合会起作用,但第三种方法不行


    我尝试了
    try_文件
    以不同的
    位置
    按一定的顺序,
    返回
    ,以及
    重写
    ,但缺少一些细节

    我认为以下方法可行:

    location = / {
      rewrite / /blog;
    }
    
    location ~ /blog.* {
      # desired options, php, index, etc.
    }
    
    location /app {
      # desired options, php, index, etc.
    }
    
    location / {
      return 404;
    }
    
    说明:

    • 如果nginx找到
      =
      ,它将终止-因此
      /
      是正常的
    • 博客
      应用
      位置很简单(我认为)
    • location/
      :它是前缀
      nginx
      将尝试查找最长的匹配项。
      /blog
      /app
      /
      最长。
      /fake/directory
      将只匹配最后一个
      位置/
      ,因此
      将返回404
    更多信息请参见