Ngnix 使用 catchall server_name 进行重写

Ngnix 使用 catchall server_name 进行重写

我正在尝试根据一个通用服务器名称进行重写。

因此,我希望任何访问此服务器的域名

demo.example.com

重写为

example.org?site=demo.example.com

目前,我已将 catchall 服务器设置为

server {
    listen 80 default_server;

    server_name ~^(.+)$;


    location / {
            rewrite ^ http://example.org?site=$host permanent;
    }
}

然而,上面的配置让我

http://example.org/?site=~^(.+)$

我尝试在重写中使用 $server_name,但没有成功。有什么想法吗?

答案1

在这方面你可能会有更好的运气。

server {
    listen 80 default_server;

    location / {
       rewrite ^/(.*)$ http://example.org/$1?site=$host permanent;
    }
}

相关内容