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

时间:2011-01-08 08:13:37

标签: php .htaccess saas cname

我如何向客户提供Basecamp / SAAS App(如子域名?)

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

之后我希望他们通过CNAME选择自己的域名/子域名,以便他们可以拥有http://clients.mywebsite.com

这样的网址

我想在纯PHP和.HTACCESS中做到这一点,并且所有事情都会自动发生。

我希望保持网址结构相同..,即http://company.example.com/loginhttp://company.example.com/accountshttp://company.example.com/files/style.css,尽管这些文件位于/app目录内,我希望它们是像这样访问。

我可以处理所有PHP函数,我需要帮助.htaccess代码以及如何使用CNAME。

1 个答案:

答案 0 :(得分:11)

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

*.example.com. 14400 IN A HereBeIP

接下来,配置Web服务器以识别所有传入请求,对于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文件中,在Linux上添加/etc/hosts或在Windows上添加c:\Windows\System32\drivers\etc\hosts