1

当您使用分配了子域的模块时,我想询问 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'

这不应该这样工作!分配给模块的子域应仅服务于该模块。

我在文档中找不到任何有用的东西。也许有人有一些想法,如何处理?

4

1 回答 1

0

1) createUrl('在线/站点/索引')

2) 路由:"http:// online.".$domain."/site/index"=>'online/site/index'

于 2013-09-06T09:02:42.237 回答