1

我有一个网站,上面有一些用户资料。

例子:

-mysite.com/profiles/user-a
-mysite.com/profiles/user-b

每个配置文件都可以具有附加功能,例如文章、联系页面等。

例子:

-mysite.com/profiles/user-a/articles
-mysite.com/profiles/user-a/contact

我想允许我的用户注册一个域并将他们的个人资料(他们在我的网站上创建的个人资料)用作他们自己的网站,但使用他们自己的域。

例子:

user-a.com
user-a.com/articles
user-a.com/contact

这样他们就可以更新并在我的网站上拥有个人资料,但同时拥有自己的网站!

有没有技术方法可以做到这一点?什么是最简单的,可以为我的用户提供尽可能少的工作量?

谢谢,卢卡

4

1 回答 1

0

首先,您需要配置您的网络服务器以在任何域上为您的网站提供服务。在 Apache 中,这是通过修改VirtualHost配置来完成的,如下所示:

<VirtualHost *:80>

另外,请确保首先加载此配置。(有关更多详细信息,请参阅: Apache 默认 VirtualHost

接下来,您将让您的用户在他们的 DNS 服务器上设置 CNAME 记录,将他们的主机名指向您的主机名。这使得他们的主机名解析为与您的主机名相同的网络地址。请注意,他们不能为顶级域设置 CNAME 记录。

您可能还希望在您的站点中有一个位置,用户可以配置他们正在使用的主机名。

最后,您需要一种方法来处理这些路径中没有的路径user-a。有两种方法可以做到这一点。首先是修改你的重写规则以直接处理这些路径,并使用Host应用程序中的请求标头来确定如何处理它。

第二种方法是实际使用重写规则将Host标头值注入 URL,然后您可以在应用程序中读取它。这是Apache 文档中的一个示例:

RewriteRule  "^/(.*)$"         "/www/hosts/${lowercase:%{SERVER_NAME}}/docs/$1"

最后,您的用户所做的只是更新 CNAME 记录,并更新您网站上的配置。一旦设置好,这很容易维护。

于 2019-09-16T14:54:50.153 回答