Мультиарендность по домену или субдоменуPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Мультиарендность по домену или субдомену

Сообщение Anonymous »

Я пытаюсь реализовать базовую мультиарендность, при которой каждый пользователь может иметь собственный сайт, используя поддомен моего домена (например, tenant.mydomain.com), или использовать свой собственный домен с любым поддоменом (например, www.theirdomain. com или store.theirdomain.com). При регистрации они получают субдомен, но позже могут перейти на собственный домен. Системе необходимо найти подходящего клиента независимо от того, получают ли они доступ к маршруту, используя субдомен или домен, и в идеале я хотел бы использовать одни и те же маршруты, функции контроллера и т. д. как для доступа к субдомену, так и для пользовательского домена.
У меня есть субдомен моего собственного домена, который работает правильно и имеет следующие параметры:

Код: Выделить всё

Route::group(['domain' => '{subdomain}' . env('SESSION_DOMAIN')], function () {
// Tenant-specific routes here
});
Каждый маршрут получает поддомен, и я могу соответствующим образом найти его арендатора в соответствующем методе контроллера.
У меня возникает трудность с использованием пользовательский домен. Я могу сделать что-то вроде следующего...

Код: Выделить всё

Route::group(['domain' => '{prefix}.{domain}.{suffix}'], function() {
Route::get('/', function($prefix, $domain, $suffix) {
return "Domain is: $prefix.$domain.$suffix";
});
});
... но управлять тремя переменными для всех маршрутов немного громоздко, и я не могу использовать те же функции контроллера или блейд-файлы, что и в поддомене, поскольку там другое количество необходимые параметры. У меня также есть возможность не использовать группу массивов и разрешить любому домену/субдомену получать доступ к маршрутам и запрашивать домен/субдомен следующим образом...

Код: Выделить всё

$current_url = Request::url();
$current_url = str_replace(['https://', 'http://'], '', $current_url);
$subdomain = array_shift(explode('.', $current_url));
// Now look up the tenant based on the domain if is a custom domain or subdomain if it is our domain
Но я не совсем уверен, где этот код, то есть в методах контроллера или где-то более глобально (где это может быть?). Это также сделало бы ссылки на маршруты в блейд-файлах довольно запутанными.
Есть ли у кого-нибудь какие-нибудь предложения?

Подробнее здесь: https://stackoverflow.com/questions/717 ... -subdomain
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»