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