Hy大家, 我对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 = '')
和数百种组合,并没有得到任何有用的信息。
这里有没有人有类似的问题并解决了它?
答案 0 :(得分:0)
server {
listen 80;
server_name *.example.com;
if ($request_uri !~ ^/admin/) {
return 301 https://$host/admin$request_uri;
}
return 301 https://$host$request_uri;
}