如何在PHP中启用用户自定义域

时间:2012-01-29 21:57:56

标签: php codeigniter nginx dns

我有一个系统,用户可以将购买的域名输入到他们的个人资料中,因此在访问他们的域名时,应该替换他们的自定义域名,例如

http://domain.com/custom-namehttp://purchaseddomain.com

因此,当他们访问他们的购买域时,应该将他们带到他们的个人资料包括他们的导航链接,例如他们页面上的链接将被替换为他们购买的域名,例如查看他们的记录将是:

http://domain.com/custom-name/recordshttp://purchaseddomain.com/records

Tumblr支持此功能,但我不知道这一切是如何运作的:

enter image description here

这正是我喜欢拥有这样一个功能的方式,我搜索了SO,但它似乎没有帮助。

现在这是一个问题,我不知道如何使用PHP验证,确认并将他们购买的域合并到我的服务器而没有问题 - 我正在使用Codeigniter。

是否有可靠的插件/库或详细教程,可以启用自定义域屏蔽内部域?

我的服务器在nginx 1.0.6上运行Ubuntu 11.10。

模板对我来说很好,我可以做 - 我需要帮助的是如何安全接受并将他们的域合并到我的服务器。 < / p>


编辑:刚看了nginx VirtualHostExample,总体看起来不错,但是当域有A记录指向我的服务器时,我怎么能动态添加/删除这些域条目? / p>

2 个答案:

答案 0 :(得分:2)

您不会将其域合并到您的服务器。

事实上,当他们注册域名时,会指向您的服务器。

在您的服务器配置中,您必须动态创建隐式将页面重定向到他们在服务器上创建的页面的规则。

因此,用户会看到http://purchaseddomain.com/on-uri但您提供的页面为http://domain.com/custom-name/one-uri

即: 就像你添加.htaccess一样 - 即使你不使用apache,也只是解释“系统”必须是什么:

RewriteCond %{HTTP_HOST} purchaseddomain\.com$ [NC]
RewriteRule (.*) /custom-name/$1

答案 1 :(得分:-1)

这对我有用:

server {
    server_name *.mydomain.com
    root        /var/www/$host;

    ...
}

然后你需要制作如下目录:/var/www/user1.mydomain.com/,/var/www/user2.mydomain.com/, ...

我无法弄清楚如何将'.mydomain.com'从目录名中删除。如果有人有任何想法,请告诉我:)。