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

Это небольшая библиотека, которая сериализует объект со всеми его дочерними элементами в JSON, а также анализирует его обратно:

https://github.com/Toubs/PyJSONSerialization/

23
задан niton 17 April 2015 в 22:27
поделиться

4 ответа

Путем мы делаем это должно иметь 'выгоду все' для нашего доменного имени, зарегистрированного в DNS так, чтобы anything.ourdomain.com указал на наш сервер.

С Apache можно настроить подобное вместилище для vhosts. ServerName должен быть единственным статическим именем, но директива ServerAlias может содержать шаблон.

Servername www.ourdomain.com
ServerAlias *.ourdomain.com

Теперь все домены инициируют vhost для нашего проекта. Заключительная часть должна декодировать доменное имя, на самом деле используемое так, чтобы можно было разработать имя пользователя в коде, чем-то как (PHP):

list( $username ) = explode( ".", $_SERVER[ "HTTP_HOST" ] );

или RewriteRule, как уже предложено, который тихо отображает user.ourdomain.com/foo/bar на www.ourdomain.com/foo/bar?user=user или независимо от того, что Вы предпочитаете.

14
ответ дан Markus Safar 29 November 2019 в 02:51
поделиться

не волнуются о DNS и URL, переписывая

, Ваша запись DNS будет статична, что-то как:

*.YOURDOMAIN.COM A 123.123.123.123

Просят, чтобы Ваш поставщик DNS сделал это для Вас (если это уже не сделано), или сделайте это собой, если Вы управляете своими записями DNS. Это автоматически укажет на все Ваши субдомены (текущие и будущие) в тот же сервер HTTP.

, Как только это сделано, необходимо будет только проанализировать заголовок ХОСТА на каждом запросе HTTP для обнаружения, какое имя узла использовалось для доступа к сценариям серверной стороны на http сервере.

Принятие Вы используете ASP.NET, это - вид глупого примера, который я придумал, но работаю и демонстрирую простоту этого подхода:

<%@ Language="C#" %>
<%
string subDomain = Request.Url.Host.Split('.')[0].ToUpper();
if (subDomain == "CLIENTXXX") Response.Write("Hello CLIENTXXX, your secret number is 33");
else if (subDomain == "CLIENTYYY") Response.Write("Hello CLIENTYYY, your secret number is 44");
else Response.Write(subDomain+" doesn't exist");
%>
8
ответ дан lubos hasko 29 November 2019 в 02:51
поделиться

Прием к этому должен использовать перезапись URL так, чтобы name.domain.com прозрачно карты к чему-то как domain.com/users/name на Вашем сервере. Как только Вы запускаете вниз, что путь, это довольно тривиально для реализации.

2
ответ дан Dave Ward 29 November 2019 в 02:51
поделиться

Я хотел сделать что-то похожее ( www.mysite.com/SomeUser ).

Я отредактировал 404.shtml ], чтобы включить этот код включения на стороне сервера (SSI):

<!--#include virtual="404.php" -- >

Затем я создал файл 404.php , где я проанализировал URL-адрес, чтобы проверить имя пользователя и показать его информацию из базы данных.

0
ответ дан 29 November 2019 в 02:51
поделиться
Другие вопросы по тегам:

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