gpt4 book ai didi

nginx - 多个域的位置重写

转载 作者:行者123 更新时间:2023-12-04 00:04:02 26 4
gpt4 key购买 nike

我从事多个项目,所以我有多个域:

1. domain1
2. domani2

例如如何重写

domain1/user 到 domain1/?page=user,

domain2/user to domain2/clientArea/userMain

现在我正在使用:

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

但它重写了我所有的域。

P.S:我是nginx的新手,我正在使用 Winginx 本地服务器;

最佳答案

根据您是否有 1 个或 2 个 server-block,有 2 种方法可以做到这一点(如果您预计这 2 个域之间有很多配置差异,则使用 2,如果这 2 个域基本相同内容使用 1)

在 2 个 server 的情况下, block 配置如下所示:

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; }
}
}

注意:您可以使用 ^ 正则表达式作为重写条件,因为它所在的 location/user/ block 已经选择了您要重写的 url。这使得它的效率略有提高,因为正则表达式的匹配速度会更快。

关于nginx - 多个域的位置重写,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13175237/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com