如何在注册时为用户创建子链接?

时间:2010-09-27 21:01:01

标签: php dns wildcard hyperlink wildcard-subdomain

我希望为我的用户创建虚荣网址。我该怎么做?

我想要像username.domain.com

这样的东西

我的第二个问题是,我可以根据客户要求定制吗?就像我们说的那样,客户说要在我的帐户中添加一项功能,我是否可以这样做,因为它几乎就像我网站中的一个单独的网站?

3 个答案:

答案 0 :(得分:2)

您可以使用网址重写,例如通过Apache的mod_rewrite来解决这个问题。

出于安全和实际原因,我不建议使用username.domain.com之类的内容,除非您仔细过滤掉www之类的用户名。 更好地使用username.u.domain.com或类似的东西。

这是使用HTTP重定向重写规则的示例。

RewriteEngine on
RewriteCond %{HTTP_HOST} !^www\.domain\.com$
RewriteCond %{HTTP_HOST} ^([^.]+)\.u\.domain\.com$
RewriteRule .* http://domain.com/user/%1 [R,L]

或者,您也可以使用DNS通配符/ catch-all条目,并使用正则表达式在域之前提取用户名部分,例如

function getUserNameFromHost() {
    if ( !preg_match('`^(\w+)\.u\.domain\.com$`', $_SERVER['HTTP_HOST'], $matches) )
        return false;
    else
        return $matches[1];
}

答案 1 :(得分:0)

答案 2 :(得分:0)

网址重写。使用mod_rewrite在地址栏中显示子域,但在内部检索不同的URL。

例如:aaa.domain.com应该访问domain.com/users/aaa