Мы создаем базовое приложение SAAS, в котором каждая компания получает свой поддомен. Но если компания хочет настроить другой домен с нашим приложением, они могут это сделать.
например Я компания, зарегистрированная в приложении www.saas.com, у меня есть поддомен company.saas.com, теперь я хочу привязать свой домен company.com к company.saas.com, как мы можем этого добиться?
Я знаю, что это можно сделать с помощью Cname, но есть ли способ динамического обновления Cname?
Вы можете использовать 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]
Это полностью зависит от того, как ваше приложение выполняет определение имени хоста. Например. если он работает по 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
и др. записи. Это предотвратит использование одного и того же домена для электронной почты и т. Д.