找了一圈,看到你们讲的都很差玩,不直白。我来引用Stackoverflow上某人作的一 个比喻:php
你是苦逼的开发,桌上的电话响了,接听后,那人说要找一位销售讲电话,你说:销售的直线是020-12345678,而后就给挂掉了。这就是redirect。另外一种状况,你说,你等等啊我给你转一下,而后将电话转给一位销售部门。这就是forward。网站
$this->_redirect($url); $this->_redirect('/Read/novel/id/3'); $this->_redirect('http://www.oschina.net'); //这个redirect转了哪些参数,别人是否是一目了然?
要是你用forward,能够在Module、Controller和Action之间跳,就是不能跳到别人的网站。this
$this->_forward('action','controller','module',$param); //转到www.ursite.com/Controller/action/$param $this->_forward('novel','Read','default',array('id'=> $id,'mode'=> $mode)); //转到www.ursite.com/Read/novel/id/3/mode/fullverion,这个3和fullversion是变量 $this->_forward('poem','null','null',array('id'=> $id,'mode'=> $mode)); //这个forward,跳到别的网站去,若是在同一个Controller下另外一个novel动做,能够节省流量,节省计算资源
另外,forward以后,显示在地址栏里的地址不变。url