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

nginx перезаписывает поддомен в файл как переменную

Как получить субдомен в качестве переменной для добавления при перезаписи?

Привет.example.com должен перейти на example.com/user.php?u=Привет но все равно отображается как просто Привет.example.com

Я сейчас делаю http://example.com/users/Привет но хотелось бы иметь доменные имена в стиле Tumblr для пользователей.

rewrite ^/users/(.*)$ /user.php?u=$1 last;

Кроме того, если после субдомена hello.example.com/settings/ есть такие страницы, как / settings /, мне нужно будет переписать их в settings.php

Две вещи. Во-первых, вам нужно прочитать переменную хоста, чтобы получить поддомен и установить его в переменную, которая будет использоваться позже.
Я использовал переменную $ sub_domain, а затем добавил переменную в URI.

if ($host ~* (.*)\.example\.com) {
     set $sub_domain $1;
     rewrite ^/user.php$ /user.php?u=$sub_domain
}

Строку перезаписи нужно доработать. Я привел здесь пример. Обратитесь к встроенному nginx документация по переменным для доступных опций.