Назад | Перейти на главную страницу

Сопоставьте URL-адрес с субдоменом (NGINX)

Я знаю, что этот вопрос был спросил раньше на SO но у меня проблемы с репликацией на моем сервере.

Я пытаюсь сделать, когда пользователь переходит на 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;
    }
}

Вы действительно не хотите отправлять запросы к одному и тому же веб-серверу, это требует дополнительных накладных расходов. Я бы настроил один виртуальный хост для обоих доменов и использовал if оператор только для перезаписи запросов для поддомена.

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

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

    ...
}