我正在开展多个项目,因此我有多个域名:
1. domain1
2. domani2
如何重写例如
domain1/user to domain1/?page=user
,
domain2/user to domain2/clientArea/userMain
现在我正在使用:
location /user {
rewrite ^/user$ /?page=user;
}
但它会重写我的所有域名。
P.S:我是nginx的新手,我正在使用 Winginx 本地服务器;
答案 0 :(得分:7)
有两种方法可以执行此操作,具体取决于您是否有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。这使得它更有效率,因为正则表达式将更快匹配。