gpt4 book ai didi

redirect - 子域的 Nginx 变量?

转载 作者:行者123 更新时间:2023-12-04 05:36:33 25 4
gpt4 key购买 nike

我需要大师的建议。

在 Nginx 上 conf文件,我想将子域作为变量,以便按如下方式重定向访问。

  • 访问:http://userX.example.com/?hoo=bar
  • 重定向:http://example.com/userX/?hoo=bar

  • 但我得到
  • 重定向:http://example.com/userX.example.com/?hoo=bar

  • 我的当前 _http.conf设置如下。所以显然它是这样工作的。
    ## default HTTP
    server {
    listen 80;
    server_name default_server;
    return 301 http://example.com/$host$request_uri;
    }

    有没有像下面这样的方法或方法?
    ## default HTTP
    server {
    listen 80;
    server_name default_server;
    return 301 http://example.com/$subdomain$request_uri;
    }

    我知道如果子域部分是有限的,它可以被重定向,但我每次都必须添加它们,我希望它尽可能简单。

    有什么简单的方法可以做到吗?

    [环境] : CentOS:7.3.1611, nginx: nginx/1.13.3, *.example.com 在 NS 设置中定位到同一台服务器。

    结论 (2017/12/13)

    使用正则表达式:
    server {
    listen 80;
    server_name ~^(?<subdomain>.+)\.example\.com$;
    return 301 http://example.com/$subdomain$request_uri;
    }

    引用: Comment , Document

    最佳答案

    您可以在 server_name 中使用正则表达式提取您需要的部分作为命名捕获。例如:

    server {
    listen 80;
    server_name ~^(?<name>.+)\.example\.com$;
    return 301 http://example.com/$name$request_uri;
    }

    this document更多。

    关于redirect - 子域的 Nginx 变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45318758/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com