2

私は複数のプロジェクトに取り組んでいるので、複数のドメインがあります:

1. domain1
2. domani2

たとえば書き直す方法

domain1/user to domain1/?page=user

domain2/user to domain2/clientArea/userMain

今私は使用しています:

   location /user {
     rewrite ^/user$ /?page=user;
   }

しかし、それは私のすべてのドメインを書き換えます。

PS:私はnginxを初めて使用し、Winginxローカルサーバーを使用しています。

4

1 に答える 1

7

1 つまたは 2 つのブロックがあるかどうかに応じて、これを行うには 2 つの方法がありますserver(2 つのドメイン間で多くの構成の違いが予想される場合は 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-block の場合は、次のようになります。

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 を選択しているためです。これにより、正規表現がより速く一致するため、わずかに効率的になります。

于 2012-11-01T20:25:48.450 に答える