将 URL 映射到子域名 (NGINX)

将 URL 映射到子域名 (NGINX)

我知道这个问题之前问过但我在我的服务器上复制它时遇到了问题。

我想做的是,当用户访问 时medicine.example.com,子域应该映射到example.com/sites/medicine。因此用户看到的 URL 是medicine.example.com。index.php 通过 php 剥离。

理想情况下,解决方案将是基于通配符/正则表达式的,这样不仅medicine.example.com可以映射到 url。

下面的代码给出了一个502 bad gateway错误。

server {
    listen      80;
    listen      443 ssl;
    server_name medicine.example.com;

    location / {
        rewrite             ^([^.]*[^/])$ $1/ permanent;
        proxy_pass_header   Set-Cookie;
        proxy_pass          https://example.com/sites$request_uri;
    }
}

答案1

您实际上并不想将请求代理到同一个 Web 服务器,因为这需要更多开销。我会为两个域配置一个虚拟主机,并使用if语句仅重写子域的请求。

server {
    server_name example.com medicine.example.com;

    if ($host = "medicine.example.com") {
        rewrite . /sites/medicine$request_uri;
    }

    ...
}

相关内容