【问题标题】:NGINX rewrite url if specific domain and specific urlNGINX 重写 url 如果特定域和特定 url
【发布时间】:2014-01-10 06:02:01
【问题描述】:

当用户使用 root (aka /) url 访问特定域时,我需要重写 url。 到目前为止,我有:

server {
  listen 80;
  server_name name1.com name2.com;

  location = / {
    # Well, I need this only for NAME2.COM (it should not rewrite NAME1.COM)
    rewrite name2.com/users/sign_in
  }
}

如何只为 NAME2.COM 重写。有时 NGINX 语法会使我的堆栈溢出。请帮忙。

【问题讨论】:

    标签: nginx rewrite


    【解决方案1】:

    您应该拆分服务器块。见:http://wiki.nginx.org/Pitfalls

    server {
      listen 80;
      server_name name1.com;
    
      location = / {
        # no rewrite here
      }
    }
    
    server {
      listen 80;
      server_name name2.com;
    
      location = / {
        # your rewrite here
      }
    }
    

    【讨论】:

      【解决方案2】:

      你会使用if,像这样:

      server {
        listen 80;
        server_name name1.com name2.com;
      
        location = / {
          if ($host = name2.com) {
            rewrite ^ /users/sign_in last;
          }
        }
      }
      

      【讨论】:

      • 这个答案很漂亮的原因是你唯一可以使用的地方就是这个。所以这个答案赢了。
      猜你喜欢
      • 1970-01-01
      • 2016-11-27
      • 2018-02-15
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多