如何屏蔽像cloudapp这样的URL,这样用户就可以在“他们的”服务器上展示你的数据

时间:2012-06-30 13:50:21

标签: php

我打算构建一个用户可以展示他们数据的webapp。我希望我们的用户能够在他们自己的网站上展示它,就像cloudapp一样。您可以设置自己的域名,但仍然使用应用程序的托管服务。

所以我的服务是http://example.com/showoff,但我希望用户可以选择使用http://showoff.example.net作为他们的数据。

我打算用PHP来做这件事,但如果要建立这种服务,我愿意接受建议。

2 个答案:

答案 0 :(得分:1)

他们必须将showoff.usersite.com的DNS条目指向您的服务器。您可以从$ _SERVER变量中读取它,然后离开!将另一个域指向您的站点并尝试:print_R($ _ SERVER),您将看到指向您的域名。

答案 1 :(得分:1)

我们假设您的域名为“showoff.com”,其域名为“acme.com”

您有两个基本选项:“showoff.acme.com”或“acme.showoff.com”。我已经做到了这两点。

对于“showoff.acme.com”:

  • 客户需要在其DNS中设置指向showoff.com的CNAME条目。 向客户解释如何做到这一点并非易事,除非您拥有一个小型,高薪的客户群,否则没有太大的商业意义。
  • 您需要配置Apache虚拟主机以回答对所有域的所有请求(不仅仅是showoff.com)
  • 除非为每个客户配置虚拟主机以及IP和证书,否则无法使用SSL。 (痛苦!)

对于“acme.showoff.com”:

  • 您需要wildcard DNS record将* .showoff.com指向您服务器的IP(这是否很容易取决于您的DNS提供商);如果您无法执行此操作,则需要为每个客户创建DNS记录。
  • 您需要配置Apache虚拟主机以回答对* .showoff.com
  • 的所有请求
  • 您可以使用wildcard SSL certificate作为* .showoff.com

在这两种情况下,您可以在PHP中找到$_SERVER['HTTP_HOST']请求的域名。您需要针对已识别域的数据库进行检查,以确定要显示哪个客户的数据。

如您所见,大部分工作都在DNS和Apache中;使用PHP或其他语言并不重要。