【发布时间】:2013-09-08 11:08:10
【问题描述】:
背景
我正在使用 Yii 创建一个 Web 应用程序,我正在使用子域将站点和支持文件与我的应用程序分开。我正在像这样映射我的子域。
'urlManager' => array(
'urlFormat' => 'path',
'rules' => array(
/* gii for developement, remove this in production */
'gii' => 'gii',
'gii/<controller:\w+>' => 'gii/<controller>',
'gii/<controller:\w+>/<action:\w+>' => 'gii/<controller>/<action>',
/* Sub domain mapping */
'http://<module:\w+>.<hostname:[^\/]+>/' => '<module>/',
'http://<module:\w+>.<hostname:[^\/]+>/<controller:\w+>/<id:\d+>' => '<module>/<controller>/view',
'http://<module:\w+>.<hostname:[^\/]+>/<controller:\w+>/<action:\w+>/<id:\d+>' => '<module>/<controller>/<action>',
'http://<module:\w+>.<hostname:[^\/]+>/<controller:\w+>/<action:\w+>' => '<module>/<controller>/<action>',
/* Website URL Mappint */
'<controller:\w+>/<id:\d+>' => '<controller>/view',
'<controller:\w+>/<action:\w+>/<id:\d+>' => '<controller>/<action>',
'<controller:\w+>/<action:\w+>' => '<controller>/<action>',
),
),
这一切都按预期工作,我的问题是当我需要在模块之间重定向时。每当我尝试 $this->forward() 到另一个子域时,我最终都会进入同一个子域。
示例
在 app.examplesite.com 上时,我尝试转发到 www.examplesite.com/user/login,但最终到达 app.examplesite.com/user/login
$this->forward(Yii::app()->createAbsoluteUrl('user/login'));
问题
如何正确地从 app.examplesite.com 重定向到 www.examplesite.com/user/login?
【问题讨论】:
-
这只是一个建议(我知道这个问题有点老了),但您可以试试:
$this->forward(Yii::app()->createAbsoluteUrl('/user/login'));请注意,您要重定向到的路径前有一个斜杠 -
嗨 ragingprodigy,使用
$this->forward(Yii::app()->createAbsoluteUrl('/user/login'));不会更改模块,它只会导航到执行代码的模块的 /user/login。因此,如果从 app.examplesite.com 上的控制器调用它,它将重定向到 app.examplesite.com/user/login
标签: php redirect yii subdomain