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

голоса
21

Я ищу , чтобы позволить пользователям управлять из подобласти приложения я играю с, так же, как Basecamp , где она customusername.seework.com.

Что требуется на DNSконце , чтобы они должны быть созданы динамически и доступны мгновенно.

И как вы рекомендуете дело с этим в логике сайта? Htaccessправить для поиска субдомен в DB?

Задан 04/08/2008 в 13:22
источник пользователем
На других языках...                            


4 ответов

голоса
2

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

Ответил 04/08/2008 в 13:28
источник пользователем

голоса
8

Не беспокойтесь о DNS и URL переписывания

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

*.YOURDOMAIN.COM A 123.123.123.123

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

Как только это будет сделано, вам нужно будет только для разбора заголовка HOST на каждом запросе 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");
%>
Ответил 04/08/2008 в 13:32
источник пользователем

голоса
13

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

С Apache вы можете создать подобный улов-все для ваших виртуальный хост одновременно. ServerName должен быть один статическим именем, но директива ServerAlias ​​может содержать образец.

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

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

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

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

Ответил 04/08/2008 в 14:39
источник пользователем

голоса
0

Я искал что - то подобное ( www.mysite.com/SomeUser).

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

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

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

Ответил 12/10/2009 в 16:28
источник пользователем

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more