我正在处理多个项目,所以我有多个域:
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本地服务器;
有两种方法可以做到这一点,取决于你是否有1或2 server
(如果你期望2个域之间的配置差异使用2,如果2个域大体相同的内容使用1)
在2个server
的情况下,块配置看起来像这样:
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 { 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。 这使得它更有效,因为正则表达式会更快地匹配。