CakePHP 301重定向获取url参数与爆炸导致循环

时间:2012-08-20 09:29:34

标签: cakephp loops http-status-code-301 explode slug

已解决:请参阅我的评论

我已将我的id和slug放在同一个url参数(文件夹)中以缩短我的网址。

示例:www.domain / gsm / 1_samsung-galaxy-s-ii​​i-16-gb其中“1”是id,“samsung-galaxy-s-ii​​i-16-gb”是slug。

这很好用,但现在我正在尝试构建一个301重定向脚本,用于检查数据库中的slug中的slug,如果它们不匹配,则将301重定向到正确的URL。 / p>

但由于某种原因,我最终进入了一个重定向循环,因为脚本没有刷新整个url,只是在错误的slug之后添加了正确的slug,当然还是继续这样做,直到浏览器保持..

所以www.domain / gsm / 1_bladiebla重定向到www.domain / gsm / 1_bladiebla_samsung-galaxy-s-ii​​i-16-gb_samsung-galaxy-s-ii​​i-16-gb_samsung-galaxy-s-ii​​i-16-gb_samsung -galaxy-S-III-16-GB .................

这是来自控制器的视图功能:

public function view($id = null) {
    $this->Smartphone->id = $id;
    if (!$this->Smartphone->exists()) {
        throw new NotFoundException(__('Invalid smartphone'));
    }
    $this->set('smartphone', $this->Smartphone->read(null, $id));

    $pieces = explode('_', $this->params['pass'][0]);

    if ($pieces[1] != $this->Smartphone->field('slug')) {
        $this->redirect(array('action' => 'view', $id.'_'.$this->Smartphone->field('slug')), 301);
    }
}

提前致谢!

0 个答案:

没有答案
相关问题