Nginx 多个域的位置重写

Nginx 多个域的位置重写,nginx,location,rewrite,query-string,winginx,Nginx,Location,Rewrite,Query String,Winginx,我正在从事多个项目,因此我有多个领域: 1. domain1 2. domani2 例如,如何重写 domain1/user到domain1/?page=user domain2/user to domain2/clientArea/userMain 现在我正在使用: location /user { rewrite ^/user$ /?page=user; } 但它重写了我所有的域名 注:我是nginx新手,我正在使用本地服务器 有两种方法可以实现这一点,具体取决于

我正在从事多个项目,因此我有多个领域:

1. domain1
2. domani2
例如,如何重写

domain1/user到domain1/?page=user

domain2/user to domain2/clientArea/userMain
现在我正在使用:

   location /user {
     rewrite ^/user$ /?page=user;
   }
但它重写了我所有的域名


注:我是nginx新手,我正在使用本地服务器

有两种方法可以实现这一点,具体取决于您是有1个还是2个
服务器
-块(如果您希望两个域之间存在大量配置差异,请使用2,如果两个域的内容基本相同,请使用1)

对于2
server
-blocks配置,如下所示:

server {
  server_name domain1;      
  location /user/ { rewrite ^ $scheme://$host/?page=user; }
  # add in rest of domain 1 config
}

server {
  server_name domain2;
  location /user/ { rewrite ^ $scheme://$host/clientArea/userMain; }
  # add in the rest of your domain 2 config
server {
  server_name domain1 domain2;
  location /user/ {
    if ($host = domain1) { rewrite ^ $scheme://$host/?page=user; }
    if ($host = domain2) { rewrite ^ $scheme://$host/clientArea/userMain; }
  }
}
}

对于单个
服务器
-块,它将如下所示:

server {
  server_name domain1;      
  location /user/ { rewrite ^ $scheme://$host/?page=user; }
  # add in rest of domain 1 config
}

server {
  server_name domain2;
  location /user/ { rewrite ^ $scheme://$host/clientArea/userMain; }
  # add in the rest of your domain 2 config
server {
  server_name domain1 domain2;
  location /user/ {
    if ($host = domain1) { rewrite ^ $scheme://$host/?page=user; }
    if ($host = domain2) { rewrite ^ $scheme://$host/clientArea/userMain; }
  }
}

注意:您可以使用^regex作为重写条件,因为它所在的
location/user/
块已经选择了要重写的url。这使得它的效率稍高一些,因为正则表达式将更快地匹配。

您在哪里添加了这个
位置/用户
块?您是否为每个域使用不同的
服务器{}
块?谢谢!没有:先检查主机;如果这个&那个主持人:那么有一大堆重写吗?