【问题标题】:Nginx server blockNginx 服务器块
【发布时间】:2015-02-02 16:17:13
【问题描述】:

大家好, 我对 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 = '') 以及数百种组合,但没有得到任何有用的东西。

这里有没有人遇到过类似的问题并解决了?

【问题讨论】:

    标签: nginx server


    【解决方案1】:
    server {
        listen 80;
        server_name *.example.com;
        if ($request_uri !~ ^/admin/) { 
            return 301 https://$host/admin$request_uri;
        }
        return 301 https://$host$request_uri;
    }
    

    【讨论】:

    • 代码 sn-ps 本身的信息量不是很大。请解释代码的作用,为什么要这样写,以及你希望它如何工作
    • 对不起,我在阅读你的问题之前删除了我的问题,我设法让它工作,这显然是我的某种错误
    猜你喜欢
    • 1970-01-01
    • 2021-01-25
    • 1970-01-01
    • 1970-01-01
    • 2019-03-22
    • 2017-04-05
    • 1970-01-01
    • 1970-01-01
    • 2017-06-26
    相关资源
    最近更新 更多