Сторонний URL-адрес, указывающий на определенный каталог на моем веб-сайте

У меня есть веб-сайт с некоторыми профилями пользователей.

Пример:

-mysite.com/profiles/user-a
-mysite.com/profiles/user-b

Каждый профиль может иметь дополнительные функции, такие как статьи, контактная страница и так далее.

Примеры:

-mysite.com/profiles/user-a/articles
-mysite.com/profiles/user-a/contact

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

Примеры:

user-a.com
user-a.com/articles
user-a.com/contact

Таким образом, они смогут обновляться и иметь профиль на моем сайте, но в то же время иметь свой собственный сайт!

Есть ли технический способ сделать это? Какой из них самый простой, который позволит моим пользователям выполнять как можно меньше работы?

Спасибо, Лука


person Luca Pennisi    schedule 16.09.2019    source источник
comment
Домен должен быть example.com? Есть ли способ сделать это www.example.com? Если вы можете просто использовать www.example.com, вы можете настроить запись CNAME, что делает это очень простым.   -  person Brad    schedule 16.09.2019
comment
Спасибо. Да, это может быть www. Какие значения я должен добавить к cname? Мне тоже нужно что-то делать со своей стороны?   -  person Luca Pennisi    schedule 16.09.2019


Ответы (1)


Во-первых, вам необходимо настроить веб-серверы для обслуживания вашего сайта в любом домене. В Apache это делается путем изменения конфигурации VirtualHost следующим образом:

<VirtualHost *:80>

Также убедитесь, что этот конфиг загружается первым. (Подробнее см.: Виртуальный хост Apache по умолчанию)

Затем ваши пользователи настроят записи CNAME на своих DNS-серверах, которые указывают их имя хоста на ваше. Это делает так, что их имя хоста разрешается в те же сетевые адреса, что и ваше имя хоста. Обратите внимание, что они не могут установить запись CNAME для домена верхнего уровня.

Вы, вероятно, также захотите иметь место на своем сайте, где пользователь может настроить, какие имена хостов они используют.

Наконец, вам нужен способ обработки этих путей, в которых нет user-a. Есть два способа сделать это. Во-первых, изменить правила перезаписи, чтобы напрямую обрабатывать эти пути, и использовать заголовок запроса Host в своем приложении, чтобы понять, как с ним обращаться.

Второй способ — фактически использовать ваши правила перезаписи для вставки значения заголовка Host в URL-адрес, который затем вы можете прочитать в своем приложении. Вот пример из документации Apache:

RewriteRule  "^/(.*)$"         "/www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1"

В конце концов, все, что делают ваши пользователи, — это обновляют запись CNAME и обновляют конфигурацию на вашем сайте. После настройки на вашей стороне это легко поддерживать.

person Brad    schedule 16.09.2019