【问题标题】:Creating a personal URL for all users to my site为我网站的所有用户创建个人 URL
【发布时间】:2011-02-01 04:34:55
【问题描述】:

当用户在我的网站上注册时,我想为他们提供一个登录页面和一个带有 URL 的用户区域:

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

我对此进行了谷歌搜索,但我不确定正确的术语...

如何在不必实际创建大量子域的情况下做到这一点 - 我确信它不是这样做的 - 是 URL 重写吗? Apache mod_rewrite?

如果可以的话,有人可以给我一个例子吗?或者有更好的方法吗?

顺便说一句,我正在使用 Codeigniter - 如果 Codeigniter 有可以做到这一点的东西,我宁愿使用它。

感谢大家的帮助

【问题讨论】:

    标签: php apache codeigniter


    【解决方案1】:

    在您的 apache vhost 定义(vhost.conf 或您配置的任何内容)中,创建通配符别名

    <VirtualHost *:80>
        ServerName   mysite.com
        ServerAlias  *.mysite.com
    

    然后,当用户点击您的页面时,解析他们的 URL(使用 parse_url())以提供正确的登录页面/获取他们尝试的用户名等。如果您使用,请不要忘记将别名复制到您的 *:443 VirtualHost 定义需要。

    【讨论】:

    • 如何在整个用户会话期间维护这个 URL user.mysite.com。我的意思是他们可以从他们用户区域的不同页面移动。
    • @Abs 你的意思是他们在不同的子域之间移动吗?像这样设置 cookie jotlab.com/2008/04/08/howto-get-cookies-across-subdomains-php
    • @Andy 我的意思是用户留在同一个子域中,但会转到 user1.mysite.com 等页面,然后是 user1.mysite.com/1,然后是 user1.mysite.com/2。我正在尝试弄清楚这将如何在我的 mvc 框架中工作。
    • 我不想要实际的子域,只是认为用户拥有自己的子域 - ServerAlias 会为此目的服务,而不是创建或认为这些域实际存在。我是否必须对我的 DNS 设置做任何事情才能使用它?
    • @Abs 域是mysite.com,子域是x.mysite.com 中的X。 MVC 在mysite.com 上,X 是mysite.com 的别名。 DNS设置相同,创建*.mysite.com IN A 123.123123.123
    猜你喜欢
    • 2012-01-19
    • 1970-01-01
    • 2020-09-06
    • 1970-01-01
    • 2012-02-29
    • 2012-02-05
    • 2015-12-25
    • 2015-12-29
    • 2012-10-07
    相关资源
    最近更新 更多