如何让用户连接自己的域名

问题描述:

我正在创建一个在线服务,为不同组织的成员创建一个公共个人页面。我希望组织附加一个域(可能是其主要网址的子域),但我不确定如何通过PHP进行设置。如何让用户连接自己的域名

什么我要找的是怎样的tumblr可让您连接自己的域名的例子:profile.useraddedurl.com/XYZ

所以我想什么是到显示appurl.com/user.php?domain=profile.useraddedurl.com & ID = XYZ

我想知道在PHP中设置此最好的方式,如果有任何特殊的服务器配置需放进去地点。

我想我可能需要动态创建一个htaccess文件,但是有没有更好的方法来完成这个?

首先你需要让用户设置他们的个人域名。

他们需要将它指向正确的IP地址(您可能希望他们使用CNAME记录),但您需要为他们提供他们需要的信息。

您还需要提供一个表格,以便他们告诉您他们希望您为他们处理的域名。将它存储在你的数据库中。

然后,当您收到请求时,您需要显示正确的网站。

一般的方法是确保所有请求都由相同的脚本处理(使用前端控制器模式)。

如果要使用虚拟主机名来处理特定领域有不同的脚本(例如api.example.com)然后确保默认一个(如果你使用的是Apache第一个定义的)是这一个。如果你不想这样做,那么完全避免虚拟名称托管,因为它只会产生复杂性。

然后,在PHP脚本中,查看$_SERVER['HTTP_HOST']。将它与数据库中的注册域进行比较。如果你得到一个匹配,显示该用户的网站。否则,显示您的默认值。

+0

用户域是否需要添加为服务器上的别名?或者这需要在VPS上而不是在共享主机上进行设置? – Dukatu

+0

“用户域是否需要添加为服务器上的别名?” - 这取决于你的意思是“别名”。 [Apache别名指令](https://httpd.apache.org/docs/current/mod/mod_alias.html#alias)适用于不是主机名的路径。我已经描述了答案中所需的DNS或虚拟名称。 – Quentin

+0

“这是否需要在VPS而不是共享主机上设置?” - 在共享主机上,您不需要访问权限即可将网站设为默认网站,如答案倒数第二段所述。 – Quentin