Nginx 服务器块
Nginx server block
大家好,
我对 nginx 服务器块有一个小问题,我希望这里的人知道解决方案。
我的配置是这样的:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://www.example.com;
}
server{
listen 80;
server_name *.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name .example.com;
...
}
所以第一个块是正常的 http 重定向到 https,第二个是捕获子域,第三个是位置块所在的位置等。
我的问题是,当第二个块捕获请求时,我想将 /admin 添加到 URL,所以它将是 subdomain.example.com/admin,但我必须检查它是否已经有 /admin 所以我没有得到这样的东西 subdomain.example.com/admin/admin.
我尝试了 server_name *.example.com$
和 server_name ~.example.com(=<id>.*)
然后 if ($id = '')
和数百种组合,但没有得到任何有用的东西。
这里有没有人遇到类似的问题并解决了?
server {
listen 80;
server_name *.example.com;
if ($request_uri !~ ^/admin/) {
return 301 https://$host/admin$request_uri;
}
return 301 https://$host$request_uri;
}
大家好, 我对 nginx 服务器块有一个小问题,我希望这里的人知道解决方案。
我的配置是这样的:
server {
listen 80;
server_name example.com www.example.com;
return 301 https://www.example.com;
}
server{
listen 80;
server_name *.example.com;
return 301 https://$host$request_uri;
}
server {
listen 443 ssl;
server_name .example.com;
...
}
所以第一个块是正常的 http 重定向到 https,第二个是捕获子域,第三个是位置块所在的位置等。
我的问题是,当第二个块捕获请求时,我想将 /admin 添加到 URL,所以它将是 subdomain.example.com/admin,但我必须检查它是否已经有 /admin 所以我没有得到这样的东西 subdomain.example.com/admin/admin.
我尝试了 server_name *.example.com$
和 server_name ~.example.com(=<id>.*)
然后 if ($id = '')
和数百种组合,但没有得到任何有用的东西。
这里有没有人遇到类似的问题并解决了?
server {
listen 80;
server_name *.example.com;
if ($request_uri !~ ^/admin/) {
return 301 https://$host/admin$request_uri;
}
return 301 https://$host$request_uri;
}