YII 重写URL规则后,怎么让原来的旧地址,载入时也变成新地址

2025-03-22 02:23:50
推荐回答(2个)
回答1:

只能手动正则匹配旧地址规则,然后跳转到新地址了.

例子:
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()方法里加上上面的代码即可

回答2:

你重写Url规则后,原来的旧地址最好用 $this->createUrl()这个方法来写,要不然还需手动改