14

我如何向客户提供类似子域的 Basecamp/SAAS 应用程序?

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

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

我想在纯 PHP 和 .HTACCESS 中执行此操作,并且一切都会自动发生。

而且我想保持 URL 结构相同..,也就是说http://company.example.com/login,虽然这些文件位于目录中http://company.example.com/accounts,但我希望它们可以像这样访问。http://company.example.com/files/style.css/app

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

4

1 回答 1

12

通过在域的区域中包含以下内容,确保 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 配置,或者在 Linux 或Windows上将要测试的域添加到hosts文件中。/etc/hostsc:\Windows\System32\drivers\etc\hosts

于 2011-01-08T08:37:11.830 回答