已解决:请参阅我的评论
我已将我的id和slug放在同一个url参数(文件夹)中以缩短我的网址。
示例:www.domain / gsm / 1_samsung-galaxy-s-iii-16-gb其中“1”是id,“samsung-galaxy-s-iii-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-iii-16-gb_samsung-galaxy-s-iii-16-gb_samsung-galaxy-s-iii-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);
}
}
提前致谢!