使用路由器在CakePHP中为每个注册用户动态创建子域或唯一URL?

使用路由器在CakePHP中为每个注册用户动态创建子域或唯一URL?,cakephp,Cakephp,我想为每个注册用户动态创建一个子域 例如,我的网站是注册用户,Joe是注册用户,Joe可以访问我的所有网站URL,如 Router::connect( '/:id/view', ['controller' => 'Articles', 'action' => 'view'], ['id' => '\d+', 'pass' => ['id']] ); 文档非常详尽。一种非常简单的方法是通过添加以下内容,设置ApacheVirtualHost以捕获所

我想为每个注册用户动态创建一个子域 例如,我的网站是注册用户,Joe是注册用户,Joe可以访问我的所有网站URL,如

Router::connect(
    '/:id/view',
    ['controller' => 'Articles', 'action' => 'view'],
    ['id' => '\d+', 'pass' => ['id']]
);

文档非常详尽。

一种非常简单的方法是通过添加以下内容,设置Apache
VirtualHost
以捕获所有请求,而不管所使用的子域是什么:

ServerAlias *
现在我们必须提取子域,并在发出请求时将其存储为全局变量

AppController.php
中添加:

function beforeFilter() {
    list ($subdomain,$domain)= explode('.',$_SERVER['HTTP_HOST']);
    Configure::write('username',$subdomain);
}
userscoontroller.php
中,我们读取此变量并获取用户

public function view(){
    $user=$this->User->findByUsername(Configure::read('username'));
    $this->set(compact('user'));
}
注意:代码未经测试,缺少错误处理