每个用户的子域名

时间:2011-07-27 07:16:13

标签: php dns

我拥有一个网站,为每个注册用户提供如下专用空间: www.mywebpage.com/user1 www.mywebpage.com/user2 www.mywebpage.com/user3 在这条路径中,用户拥有他的迷你网站。

我想让我的用户不是我的域中的路径,而是像这样的二级域名: user1.mywebpage.com user2.mywebpage.com user3.mywebpage.com

很多网站都是这样做的,但我无法弄清楚如何获得它!

  1. 我是否应该在每个用户的dns记录中注册一个CNAME?我怎么能用PHP实现这个目标?我不认为用人手写的脚本配置godaddy是可能的。

  2. 我可以注册一个别名CNAME,它将每个二级域名指向我的顶级域名,然后在我的顶级域名中检查检索用户的网址的第一个令牌:但现在我无法重定向他在新页面(这是他的子网站的索引)或我丢失了网址urx userx.mywebpage.com。

  3. 我该如何处理?我很欣赏任何有关正确路径的暗示,以实现我的目标。

3 个答案:

答案 0 :(得分:2)

  1. 创建指向服务器IP的通配符A记录(*.mywebpage.com)。

  2. ServerName *.mywebpage.com创建一个Apache虚拟主机,将所有请求指向同一个文档根目录。您的脚本会查看主机名以了解它所在的用户的站点。您无需在用户的子域外重定向。如果您的脚本看到子域名是“www”,那么您的特殊情况就是显示主网站而不是用户的内容。

答案 1 :(得分:0)

您不必为尝试获得的内容设置dns条目。根据您对网站的控制程度,如果您使用的是Apache,则可以轻松为子域设置虚拟主机(请参阅http://content.websitegear.com/article/subdomain_setup.htm

答案 2 :(得分:0)

您想要查看的功能通常称为通配符sudomain(通常博客网站具有此功能)。

通常您创建*的CNAME记录来表示通配符子域。相反,Godaddy制作一个名为*的A记录,并将IP设置为您的服务器。我们过去已经完成了我们的ASP.net网站(不确定是否与GoDaddy一起工作但是试一试)。

由于对PHP知之甚少,我建议在httpd.conf或apache.conf文件中添加一些重定向(URL Rewrite)配置。

请检查一下 http://kbeezie.com/view/wildcard-subdomains-php/

在此之后你可以编写自己的逻辑。您需要做的就是从子域名中的db中找出您的用户并呈现页面。