当您使用分配了子域的模块时,我想询问 Yii urlManger 的特性。
这是我需要做的:
我需要在 SSL 后面添加“登录”、“注册”、“预订”和其他一些操作,并且出于某种原因,SSL 证书是为子域(例如 online.example.com)签名的。
我为所有需要 SSL 的操作创建了一个 Yii 模块“安全”,并为其分配了一个子域“online.exmaple.com”,如下所示:
'https:// online.example.com/<action:(signin|signup)>'
=> 'secure/default/<action>',
现在棘手的事情..
1.我怎样才能从这个模块createUrl()回到网站?
例如:模块中的 createUrl('site/idex') 将创建 url:'https://online.example.com/site/index' 我需要一个返回 'http://example.com/site/ 的 url指数'。
目前我做了一个解决方法:
'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'
这不应该这样工作!分配给模块的子域应仅服务于该模块。
我在文档中找不到任何有用的东西。也许有人有一些想法,如何处理?