指向我网站上某个目录的第三方 URL



我有一个网站,上面有一些用户配置文件。

例:

-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

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

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

谢谢 卢卡

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

<VirtualHost *:80>

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

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

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

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

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

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

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

最新更新