为所有用户创建个人网址访问我的网站

6
当用户在我的网站上注册时,我希望为他们提供一个登录页面和一个用户区域,URL如下:

http://user1.mysite.com http://user2.mysite.com http://user3.mysite.com ...

我在谷歌上搜索了一下,但不确定正确的术语是什么...
我该如何做到这一点,而无需创建大量子域 - 我确信不是这样做的 - 这是URL重写吗?Apache mod_rewrite?
如果是,能否请某人给我一个示例,或者有更好的方法吗?
顺便说一句,我正在使用Codeigniter - 如果Codeigniter有可以做到这一点的东西,我宁愿使用那个。
感谢任何帮助。
1个回答

8
在您的 Apache 虚拟主机定义文件(vhost.conf 或您配置的任何其他文件)中,创建一个通配符别名。
<VirtualHost *:80>
    ServerName   mysite.com
    ServerAlias  *.mysite.com

当用户访问您的页面时,使用 parse_url() 解析其 URL,以提供正确的登录页面并获取其尝试的用户名等信息。如果需要,不要忘记将别名复制到您的 *:443 虚拟主机定义中。


我该如何在用户会话期间保持URL user.mysite.com不变。我的意思是,他们可以在其用户区域中移动到不同的页面。 - Abs
@Abs 你的意思是他们在不同的子域之间移动吗?可以像这样设置cookie http://www.jotlab.com/2008/04/08/howto-get-cookies-across-subdomains-php/ - Andy
@Andy 我的意思是用户仍然停留在同一个子域名下,但是访问像user1.mysite.com这样的页面,然后是user1.mysite.com/1,接着是user1.mysite.com/2。我正在尝试弄清楚这将如何在我的MVC框架中工作。 - Abs
我不想要实际的子域名,只是让用户感觉自己拥有了自己的子域名。ServerAlias是否能够满足这个目的,而且不会真正创建或认为这些域名存在?我需要在我的DNS设置中做一些什么才能使用这个功能吗? - Abs
@Abs 域名是 mysite.com,子域名为 X 在 x.mysite.com。MVC 在 mysite.com 上运行,X 是 mysite.com 的别名。DNS 设置相同,创建 *.mysite.com IN A 123.123123.123 - Andy

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接