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)
对于2server
-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。这使得它的效率稍高一些,因为正则表达式将更快地匹配。您在哪里添加了这个位置/用户
块?您是否为每个域使用不同的服务器{}
块?谢谢!没有:先检查主机;如果这个&那个主持人:那么有一大堆重写吗?