Как предложить пользовательские поддомены для приложения 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 14

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.