使用子域时Yii urlManger

时间:2013-08-18 11:01:33

标签: yii subdomain

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

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

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

1 个答案:

答案 0 :(得分:0)

1)createUrl('online / site / index')

2)路线: “http:// online。”。$ domain。“/ site / index”=&gt;'online / site / index'