我正在创建在线服务,为不同组织的成员创建公共个人资料页面。我希望组织附加一个域(可能是其主URL的子域),但我不确定如何通过PHP设置它。
我正在寻找的一个例子是Tumblr如何让您连接自己的域名:
所以我希望 profile.useraddedurl.com/XYZ 显示 appurl.com/user.php?domain=profile.useraddedurl.com&id=XYZ
我想知道在PHP中设置它的最佳方法,以及是否需要安装任何特殊的服务器配置。
我想我可能需要动态创建一个htaccess文件,但是有更好的方法可以实现吗?
答案 0 :(得分:0)
首先,您需要让用户设置个人域名。
由他们指出正确的IP地址(您可能希望他们使用CNAME记录),但是您需要向他们提供他们需要做的信息这一点。
您还需要提供一个表单,以便他们可以告诉您他们希望您为他们处理的域名。将其存储在您的数据库中。
然后,您需要在收到请求时显示正确的网站。
一般方法是确保所有请求都由同一个脚本处理(使用前端控制器模式)。
如果要使用虚拟名称托管来处理具有不同脚本的特定域(例如api.example.com
),请确保默认一个(如果您使用的是Apache,则首先定义的那个)是这一个。如果您不想这样做,那么请完全避免虚拟名称托管,因为它只会造成复杂情况。
然后,在PHP脚本中,查看$_SERVER['HTTP_HOST']
。将其与数据库中的已注册域进行比较。如果您匹配,请显示该用户的网站。否则,请显示您的默认值。