당신은 당신에게 특별한 요청을 처리하기 위해 사용자 정의 클래스를 사용할 수 있습니다. 나는이 같은 STH를 사용하고 , 데이터베이스에서 내 사용자 지정 URL을 얻을 수 있습니다 :
'urlManager'=>array(
'rules'=>array(
array(
'class' => 'application.components.UrlRule',
),
),
),
그런 다음이 유사한 당신의 고객 사양 클래스를 만들 :이 있다면
는
<?php
Yii::import("CBaseRule");
class UrlRule extends CBaseUrlRule
{
public function createUrl($manager,$route,$params,$ampersand)
{
// check for my special case of URL route, if not found, then return the unchaged route
preg_match("/^(.+)\/(.+)$/", $route, $r);
if(!is_array($r) or !isset($r[1]) or !isset($r[2])) {
return $route;
}
// handle your own route request, and create your url
$url = 'my-own-url/some-thing';
// check for any params, which i also want to add
$urlParams = $manager->createPathInfo($params,"=","&");
$return = trim($url,'/');
$return.= $urlParams ? "?" . $urlParams : "";
return $return;
}
public function parseUrl($manager,$request,$pathInfo,$rawPathInfo)
{
// handle my special url request
$controller = '....';
$action = '.....';
// return the controller/action that should be used
return lcfirst($controller)."/".$action;
}
}
는 나도 몰라 무엇을 당신은 원했지만 적어도이 클래스에서는 요청 된 URL로 필요한 모든 것을 할 수 있습니다. 예 : 301 리디렉션을 사용하여 유사한 URL을 많은 수의 URL로 리디렉션하는 것처럼 parseUrl
함수에서