Nginx服务器块

时间:2015-02-02 16:17:14

标签: nginx server

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 = '')和数百种组合,并没有得到任何有用的信息。

这里有没有人有类似的问题并解决了它?

1 个答案:

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