加密/解密Yii URL

时间:2012-01-26 10:13:55

标签: php yii

我需要一种方法将加密的URL请求参数解密为原始的Yii controller/action路径。例如:

发件人:http://www.site.com/feh923rfj932(已加密)
致:http://www.site.com/api/view/1(解密)

我可以使用一些CUrlManager路由器回调来实现解密方法吗?

1 个答案:

答案 0 :(得分:4)

是的,Yii提供了一种使用Custom Url Classes“回调”实现自己的URL逻辑的简便方法。

基本上,您将声明一个指向新解码器/编码器类的新规则:

'rules' => array(
  '' => 'site/index', // normal URL rules
  array( // your custom URL handler
    'class' => 'application.components.CustomUrlRule',
  ),
),

您的网址类看起来像这样:

class CustomUrlRule extends CBaseUrlRule {

  public function createUrl($manager,$route,$params,$ampersand) {
    return your_encrypt_method($route);
  }

  public function parseUrl($manager,$request,$pathInfo,$rawPathInfo) {
    return your_decrypt_method($pathInfo);
  }
}