当您使用已分配子域的模块时,我想询问Yii urlManger的小部分。
以下是我需要做的事情:
我需要在SSL后面加上“登录”,“注册”,“预订”和其他一些操作,并且出于某种原因,SSL证书是针对子域签名的,例如online.example.com。
我为所有需要SSL的操作创建了一个Yii模块“secure”,并为其分配了一个子域“online.exmaple.com”,如下所示:
'https:// online.example.com/<action:(signin|signup)>'
=> 'secure/default/<action>',
现在棘手的事情......
1。如何从此模块将createUrl()返回到站点?
例如:来自模块的createUrl('site / idex')将创建网址:'https:// online.example.com/site/index' 我需要一个网址回到'http:// example.com/site/index'。
目前我做了一个解决方法:
'http://'.$mainDomain . '/' => 'site/index',
'http://'.$mainDomain . '/news' =>'site/news',
其中$ mainDomain只是修复'example.com'字符串。 但这并不总是奏效。 例如,它不适用于returnUrl
Yii::app()->user->setReturnUrl(array('site/index'));
将转到'https:// online.example.com/secure/site/index'
和第二个重要问题:
2。如何仅限制子域以服务链接到它的模块?
现在,例如,如果我去 'https:// online.example.com/site/index'(注意:模块的默认操作是'default / index')它会让我进入我的网站主页。它不应该。 或者我可以访问任何其他模块: 'https:// online.example.com/mymodule/default/index'
这不应该这样! 分配给模块的子域应仅服务于该模块。
我在文档中找不到任何有用的东西。也许有人有一些想法,如何处理?
答案 0 :(得分:0)
1)createUrl('online / site / index')
2)路线: “http:// online。”。$ domain。“/ site / index”=&gt;'online / site / index'