Получить первую букву субдомена как переменную

Как мне получить первую букву переменной в nginx

example

        server_name ~^(?<subdomain>\w+)\.development\.test$;

        location / {
                root /var/www/test/$subdomain.0/$subdomain;
                try_files $uri $uri/ =404;
        }

Итак, это сработает {{1} } http: //apple.development.test/ переход по этому пути / var / www / test / a / apple

Я видел методы с картой, но не знаю, как это сделать правильно

0
задан 18 April 2021 в 19:33
2 ответа

Следующий подход также может работать:

server_name ~^(?<subdomain>(?<firstletter>\w)\w+)\.development\.test$;

location / {
    root /var/www/test/$firstletter/$subdomain;
    try_files $uri $uri/ =404;
}
0
ответ дан 24 April 2021 в 02:06

Вы можете создать новую переменную с первой буквой, используя модуль карты: http://nginx.org/en/docs/http/ngx_http_map_module.html#map

Пример:

map $subdomain $firstletter {
    default                    "";
    "~^(?letter.{1}).*$"  $letter;
}
0
ответ дан 24 April 2021 в 02:06

Теги

Похожие вопросы