只能手动正则匹配旧地址规则,然后跳转到新地址了.
例子:
if ( preg_match( '/cate\_detail/[^\.]+/i' ,$_SERVICE['REQUEST_URI'] ) )
{
$this->redirect($this->createUrl('category/detail', array('cate'=>'文学')), true, 301);
}
原来我的网址结构是 /cate_detail/文学.html, 后来改成/cate/文学.html 这样形式的。在所有controller的父类Controller.php的init()方法里加上上面的代码即可
你重写Url规则后,原来的旧地址最好用 $this->createUrl()这个方法来写,要不然还需手动改