Я перенаправил весь трафик на мой основной домен, скажем, www.example.com
, и моя первая страница www.example.com/login
, поэтому любая запись в поддомене будет перенаправлена на основной домен, поэтому something.example.com/login
окажется на той же странице, что иwww.example.com/login (но поддомен останется в URL).Причина, по которой я это делаю, заключается в том, что у меня есть несколько «клиентов» и «пользователей», каждый пользователь отвечает за одного или нескольких клиентов, и все они настроены в базе данных и работают отлично, поэтому я могу войти в систему с помощью user1. Я посмотрю некоторые задачи для user1.на client1 и когда я захожу с user2, я вижу задачи от user2 на client2 и т. д. *
Теперь мне нужно сделать еще одну вещь, чтобы она выглядела немного лучше, когда кто-то открывает example.com и входит в системус учетными данными user1 я хочу, чтобы он был перенаправлен на client1.example.com, и в то же время, когда кто-то открывает client1.example.com, я хочу, чтобы он увидел логотип этого клиента.
Все запросы к базе данных идругие проблемы с входом обрабатываются, но я сталкиваюсь с парой проблем:
- как перенаправить на правильный клиент (поддомен)?
- и наоборот, если (супер администратор) пользователь, которыйотвечает за управление клиентами и пользователями, входит в систему, как перенаправить его на основной домен (example.com) без?
Еще одна проблема, но я думаю,это будет решено, когда я смогу решить другие проблемы, когда пользователь управляет более чем одним клиентом, я хочу дать ему возможность переключать клиентов, например, user1, есть меню для переключения на client1 или client2, но любое перенаправление, которое я делаю, - это регистрацияпользователь вышел.как я могу поддерживать сеанс с этой функцией?
ps, когда разные пользователи регистрируются в цветах (темы) и логотипы приложения, которые вызываются из базы данных в соответствии с клиентом, и именно поэтому мне нужно прочитать поддоменна первой странице, чтобы я мог изменить login logo
в соответствии с поддоменом
, это часть моего кода, чтобы увидеть, как я этого добиваюсь, если кому-то интересно
$currentUrl = $request->getHttpHost();
$baseUrl = $this->container->getParameter('base_url');
$subdomain = str_replace('.'.$baseUrl, '',$currentUrl);
if (sizeof($user->getClients()) > 0) {
$filter = $this->em->getFilters()->enable(Utils::CLIENT_FILTER_NAME);
if ($user->getLastLoggedInClient() !== null) {
$client = $user->getLastLoggedInClient();
} else {
$client = $user->getClients()->first();
}
if ($client == null) {
throw new ClientNotFoundException();
}
if(!$client->isActive()){
throw new ClientNotActiveException();
}
$this->session->set(Utils::CLIENT_ID_NAME, $client->getId());
$this->session->set('client', $client);
$filter->setParameter(Utils::CLIENT_ID_NAME, $client->getId());
$user->setLastLoggedInClient($client);
$this->em->persist($user);
$this->em->flush();
}
else{
return new RedirectResponse('/logout');
}
return new RedirectResponse('/');
, такя думаю где-то здесь return new RedirectResponse('/');
мне нужно перенаправить на правильный поддомен.
Спасибо!