如何允许用户连接自己的域名

3
我正在创建一个在线服务,为不同组织的成员创建公共个人资料页面。我希望组织可以附加域名(可能是其主URL的子域),但我不确定如何通过PHP设置此项。
我想要的示例类似于Tumblr如何连接自己的域名:
因此,我希望profile.useraddedurl.com/XYZ显示appurl.com/user.php?domain=profile.useraddedurl.com&id=XYZ
我想知道在PHP中设置这一点的最佳方法,以及是否需要放置任何特殊的服务器配置。
我认为我可能需要动态创建htaccess文件,但是否有更好的方法来完成这个任务?
1个回答

2
首先,您需要让用户设置他们的个人域名。让他们指向正确的IP地址(您可能希望他们使用CNAME记录),但是您需要提供必要的信息供他们进行设置。
您还需要提供一个表单,以便他们告诉您他们想要处理的域名。将这些信息存储在您的数据库中。
然后,当您收到请求时,您需要显示正确的站点。一般的方法是确保所有请求都由同一个脚本处理(使用前端控制器模式)。
如果您想使用虚拟名称托管来处理具有不同脚本的特定域名(例如api.example.com),请确保默认的脚本(如果您正在使用Apache,则是第一个定义的脚本)是该脚本。如果您不想这样做,请完全避免使用虚拟名称托管,因为它只会增加复杂性。
然后,在PHP脚本中查看$_SERVER ['HTTP_HOST']。将其与数据库中注册的域名进行比较。如果匹配,则显示该用户的站点。否则,显示您的默认站点。

用户域名需要添加为我的服务器别名吗?还是需要在VPS上设置,而不是在共享主机上设置? - Dukatu
“用户域名是否需要作为服务器别名添加?” — 这取决于您所说的“别名”是什么意思。Apache别名指令是用于路径而不是主机名的。至于DNS或虚拟名称托管方面,我已在答案中描述了所需内容。 - Quentin
“这个需要在VPS上设置,而不是共享主机上吗?” - 在共享主机上,您将无法访问所需的访问权限,以实现答案倒数第二段描述的默认站点设置。 - Quentin

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接