Мы создаем базовое приложение SAAS, в котором каждая компания получает свой собственный поддомен. Но если компания хочет настроить другой домен с нашим приложением, они могут это сделать.
например. Я компания, зарегистрированная в приложении www.saas.com, у меня есть поддомен company.saas.com, теперь я хочу привязать свой домен company.com к company.saas.com, так как мы можем этого добиться?
я знаю, что это можно сделать с помощью Cname, но есть ли способ динамического обновления Cname?
Это полностью зависит от того, как ваше приложение выполняет определение имени хоста . Например. если он работает по HTTPS, вам необходимо добавить виртуальный хост на свой веб-сервер. На основании того, что вы в настоящее время используете subdomain.saas.example.com
, и программа способна это определить, мы можем сделать вывод, что это должно быть возможно. Вы просто будете использовать тот же метод идентификации имени хоста, что и в текущем решении.
На уровне DNS вы должны использовать запись A
, указывающую на тот же IP-адрес . Это потому, что использование записи CNAME
вызывает только другой поиск DNS для записи company.saas.example.com IN A
и не вызывает никаких изменений в обнаруженном имени хоста, поэтому вы не получил бы никакой пользы от его использования; т.е. это не ярлык для предотвращения настройки этого метода определения имени хоста.
Если вы хотите использовать CNAME
(например, если IP-адрес для *. saas.example.com
может измениться без уведомления клиента), вам следует посоветовать использовать поддомен, например saas.example.net
вместо example.net
. Это связано с тем, что при использовании записи CNAME
вы не можете использовать какие-либо другие записи на том же имени хоста. С самим доменным именем это означает, что вы теряете возможность добавлять записи MX
, TXT
, NS
и т. Д. Это предотвратит использование одного и того же домена для электронной почты и т. Д.
Вы можете использовать RewriteRule для перенаправления запросов на определенный DocumentRoot, и вы можете добавить динамику правила в файл .htaccess.
Было бы лучше добавить виртуальные хосты в файлы конфигурации Apache, но тогда вам необходимо перезапускать Apache после каждого изменения.
.htaccess:
RewriteEngine On
RewriteCond %{HTTP_HOST} (clientone.saas.example.com)
RewriteRule ^(.*)$ /clientonefolder/$1 [R=301,L]
RewriteCond %{HTTP_HOST} (clienttwo.saas.example.com)
RewriteRule ^(.*)$ /clienttwofolder/$1 [R=301,L]