我如何向客户提供Basecamp / SAAS App(如子域名?)
例如,我的网站网址是http://www.example.com
每当用户注册我想提供像http://company.example.com
这样的网址时,它应该从网站的/app
目录加载文件/内容。
之后我希望他们通过CNAME选择自己的域名/子域名,以便他们可以拥有http://clients.mywebsite.com
我想在纯PHP和.HTACCESS中做到这一点,并且所有事情都会自动发生。
我希望保持网址结构相同..,即http://company.example.com/login
,http://company.example.com/accounts
,http://company.example.com/files/style.css
,尽管这些文件位于/app
目录内,我希望它们是像这样访问。
我可以处理所有PHP函数,我需要帮助.htaccess代码以及如何使用CNAME。
答案 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
。