Как предложить пользовательские поддомены для приложения SAAS
Как я могу предложить клиентам приложение Basecamp / SAAS, например поддомены?
Например, мой URL-адрес веб-сайта http://www.example.com
всякий раз, когда пользователь регистрируется, я хочу предложить ему url-адрес, подобный http://company.example.com
, который должен загружать файлы/содержимое из каталога /app
веб-сайта.
И позже я хочу, чтобы они выбрали свой собственный домен / поддомен через CNAME, чтобы у них был URL-адрес, такой как http://clients.mywebsite.com
Я хочу сделать это в чистом PHP и .HTACCESS и offcourse все происходит автоматически.
И я хочу ... сохранить структуру 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.