Поддельный поддомен для разных пользователей, при этом просматривая ту же структуру папок - PullRequest
0 голосов
/ 27 сентября 2018

Я хотел бы создать поддельные поддомены для разных пользователей для большей тщательности, и чтобы пользователь (в данном случае компания) чувствовал, что он находится в более изолированной среде.

Ради удобства обслуживаниядля меня важно, чтобы все пользователи по-прежнему просматривали одни и те же файлы, чтобы избежать необходимости обновлять файлы для каждого отдельного пользователя, который существует при обновлении кода.

Мой сайт имеет одну общедоступную часть в корне, скажем, www.example.com.Я хотел бы иметь возможность подделать следующий вид поддоменов:

user1.example.com

Истинный URL будет www.example.com/member/?user=user1.Я бы хотел, чтобы структура папок соответствовала той же схеме.www.example.com/member/settings/?user=user1 будет выглядеть как user1.example.com/settings/ и т. Д.

Я предполагаю, что лучше всего это будет достигнуто с .htaccess, нет ?.Какой правильный .htaccess код для этого?

Спасибо!

Ответы [ 2 ]

0 голосов
/ 03 апреля 2019

В конце концов, это было очень легко решить!Это не было решено так, как я ожидал, используя .htaccess.Я решил это с помощью подстановочного поддомена.

Когда вы регистрируете новый поддомен, введите * в префиксе домена, например * .example.com.На вашем сервере будет создана папка для поддомена с подстановочными символами, например _wildcard_.example.com .Каждый раз, когда вы обращаетесь к site1.example.com , fakesub.example.com и т. Д., Браузер посетителя будет считывать файлы в подстановочном знаке .example.com.папка.

Вся прелесть в том, что если я создам определенный поддомен, который я хочу использовать, например, forum.example.com , этот реальный поддомен будет иметь приоритет над поддоменом с подстановочными символами,и файлы будут выбираться из папки для этого субдомена, а не из папки субдомена с подстановочными знаками.

Я использую PHP и мне нужно знать субдомен для извлечения соответствующей базы данных для текущего пользователя.Для этого я использую следующий код:

$subdomain = explode('.', $_SERVER['HTTP_HOST'])[0]

С SSL-сертификатом с подстановочными знаками все эти субдомены защищены.

0 голосов
/ 12 октября 2018

на основе предоставленной вами информации, немного .htaccess не тестировался, но может выполнить эту работу.

RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www\.)?example.com$ [NC]
RewriteCond %{QUERY_STRING} ^user=(.*)$
RewriteRule ^(.*)$ http://%1.example.com/$2? [R=302,L]

Как только вы найдете, что он работает нормально, замените 302 на 301

Примечание. Важно отметить, что вам нужно добавить подстановочный знак субдомена

.
...