Как предложить настраиваемые поддомены для приложения SAAS

Как я могу предложить приложение Basecamp/SAAS для поддоменов клиентам?

Например, мой URL-адрес веб-сайта http://www.example.com, когда пользователь регистрируется, я хочу предложить им URL-адрес, например http://company.example.com, который должен загружать файлы/содержимое из каталога /app веб-сайта.

И позже я хочу, чтобы они сами выбирали свой домен/поддомен через CNAME, чтобы они могли иметь URL-адрес, например http://clients.mywebsite.com

Я хочу сделать это в Pure PHP и .HTACCESS, и в любом случае все происходит автоматически.

И я хочу, чтобы структура URL была такой же.., то есть http://company.example.com/login, http://company.example.com/accounts, http://company.example.com/files/style.css, хотя эти файлы находятся внутри каталога /app, и я хочу, чтобы к ним обращались так.

Я могу обрабатывать все функции PHP, мне нужна помощь с кодами .htaccess и как идти в CNAME.

Ответ 1

Убедитесь, что DNS разрешает все поддомены, включая следующие в доменной зоне:

*.example.com. 14400 IN A HereBeIP

Затем настройте веб-сервер для распознавания всех входящих запросов, для Apache вам нужно добавить следующее в VirtualHost:

ServerAlias *.example.com

Что это. Остается только логика в коде, вам нужно проверить имя хоста, чтобы узнать, был ли запрос выполнен на example.com или foo.example.com.

Обновлено с более подробной информацией.

Итак, если ваши файлы находятся в /path/to/files/app, вам необходимо настроить виртуальный хост следующим образом:

<VirtualHost>
    SeverName example.com
    ServerAlias *.example.com
    DocumentRoot /path/to/files/app
    # plus what else is needed
</VirtualHost>

Таким образом, все запросы будут разрешены в директории /app. Чтобы проверить его, примените настройку DNS или просто добавьте домены, которые вы хотите протестировать, в свой hosts файл, /etc/hosts в Linux или c:\Windows\System32\drivers\etc\hosts в Windows.