第三方 url 指向我网站上的某个目录
Third party url pointing to a certain directory on my website
我有一个网站,上面有一些用户资料。
示例:
-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
这样他们就可以在我的网站上更新和拥有个人资料,同时拥有自己的网站!
有技术方法吗?哪一项最简单,可以让我的用户完成尽可能少的工作量?
谢谢,
卢卡
首先,您需要配置网络服务器以在任何域上为您的网站提供服务。在 Apache 中,这是通过修改 VirtualHost
配置来完成的,如下所示:
<VirtualHost *:80>
此外,请确保先加载此配置。 (有关详细信息,请参阅:Apache default VirtualHost)
接下来,您将让您的用户在他们的 DNS 服务器上设置 CNAME 记录,将他们的主机名指向您的主机名。这使得他们的主机名解析为与您的主机名相同的网络地址。请注意,他们无法为 top-level 域设置 CNAME 记录。
您可能还希望在您的站点中有一个位置,用户可以在其中配置他们正在使用的主机名。
最后,您需要一种方法来处理这些没有 user-a
的路径。有两种方法可以做到这一点。第一种是修改您的重写规则以直接处理这些路径,并在您的应用程序中使用 Host
请求 header 来确定如何处理它。
第二种方法是实际使用您的重写规则将 Host
header 值注入 URL,然后您可以在您的应用程序中读取它。这是来自 Apache documentation:
的示例
RewriteRule "^/(.*)$" "/www/hosts/${lowercase:%{SERVER_NAME}}/docs/"
最后,您的用户所做的只是更新 CNAME 记录,并更新您网站上的配置。一旦在您这边设置好,就很容易维护了。
我有一个网站,上面有一些用户资料。
示例:
-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
这样他们就可以在我的网站上更新和拥有个人资料,同时拥有自己的网站!
有技术方法吗?哪一项最简单,可以让我的用户完成尽可能少的工作量?
谢谢, 卢卡
首先,您需要配置网络服务器以在任何域上为您的网站提供服务。在 Apache 中,这是通过修改 VirtualHost
配置来完成的,如下所示:
<VirtualHost *:80>
此外,请确保先加载此配置。 (有关详细信息,请参阅:Apache default VirtualHost)
接下来,您将让您的用户在他们的 DNS 服务器上设置 CNAME 记录,将他们的主机名指向您的主机名。这使得他们的主机名解析为与您的主机名相同的网络地址。请注意,他们无法为 top-level 域设置 CNAME 记录。
您可能还希望在您的站点中有一个位置,用户可以在其中配置他们正在使用的主机名。
最后,您需要一种方法来处理这些没有 user-a
的路径。有两种方法可以做到这一点。第一种是修改您的重写规则以直接处理这些路径,并在您的应用程序中使用 Host
请求 header 来确定如何处理它。
第二种方法是实际使用您的重写规则将 Host
header 值注入 URL,然后您可以在您的应用程序中读取它。这是来自 Apache documentation:
RewriteRule "^/(.*)$" "/www/hosts/${lowercase:%{SERVER_NAME}}/docs/"
最后,您的用户所做的只是更新 CNAME 记录,并更新您网站上的配置。一旦在您这边设置好,就很容易维护了。