如何为SAAS应用程序提供自定义子域

Dhr*_*Jha 14 php .htaccess cname saas

我如何向客户提供像子域一样的Basecamp/SAAS App?

例如,我的网站URL是http://www.example.com每当用户注册我想提供它们时http://company.example.com,应该从/app网站目录中加载文件/内容.

后来我希望他们通过CNAME选择自己的域/子域,这样他们就可以拥有像 http://clients.mywebsite.com

我想在Pure 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.

Dav*_*dža 11

确保DNS通过在域的区域中包含以下内容来解析所有子域:

*.example.com. 14400 IN A HereBeIP
Run Code Online (Sandbox Code Playgroud)

接下来,配置Web服务器以识别所有传入请求,对于Apache,您需要向VirtualHost添加以下内容:

ServerAlias *.example.com
Run Code Online (Sandbox Code Playgroud)

而已.唯一剩下的就是代码中的逻辑,您需要检查主机名以查看是否对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>
Run Code Online (Sandbox Code Playgroud)

这样所有请求都将解析到/app目录.要测试它,请应用上面的DNS配置,或者只是在Linux或Windows 上将要测试的域添加到hosts文件中./etc/hostsc:\Windows\System32\drivers\etc\hosts