CakePHP大师:如何重定向通用URL到语言前缀URL



我有语言前缀的URL工作得很好(site.com/en/controller/actionsite.com/fr/controller/action等),但如果有人输入URL 而没有语言,我想重定向到具有该语言的URL。因此,site.com/controller/action重定向到site.com/xx/controller/action,其中xx是指定语言的值,存储在会话(或cookie)中。

我怀疑我可以在$this->params数组中查找language索引,如果我找不到它,只需重定向。比如:

if (!isset($this->params['language']) {
    $this->redirect(array('controller' => $this->controller, 'action' => $this->action, 'language' => $this->Session->read('Config.language')));
}

但是我担心的是这会丢失任何POST或GET数据。

我错过了什么?

谢谢!

我不是这方面的专家,但我明白总是重定向POST数据是很好的做法。因此,在检查语言之前,对POST数据做你应该做的事情,然后在url中使用适当的语言进行重定向。

看这个:插入cakephp POST参数到URL

您也可以查看this->参数获取GET数据,并将其传递给$this->redirect以携带它。

最新更新