【发布时间】:2015-08-11 15:51:34
【问题描述】:
我当前的设置具有以下 URL 结构
http://somedomain/blog/1/title
如果 slug 标题部分错误,它将重定向到正确的 slug,但是如果您输入以下 url,您将得到 404(未提供 slug):
现在我想使用 slug 将用户重定向到正确的 URL,例如在 stackoverflow 上,如果您输入 https://stackoverflow.com/users/1917403 是否会将我的用户名添加到末尾。
网址管理器
'urlManager' => [
'class' => 'yii\web\UrlManager',
'enablePrettyUrl' => true,
'showScriptName' => false,
'rules' => [
'blog/<id:\d+>/<slug:[-a-zA-Z 0-9]+>' => 'blog/view',
],
],
这是我的控制器视图操作
public function actionView($id, $slug = null)
{
$model = $this->findModel($id);
$model->author_info = json_decode($model->author_info, true);
if ($slug != $model->slug) {
return $this->redirect(['blog/view', 'id' => $id, 'slug' => $model->slug]);
}
return $this->render('view', [
'model' => $model,
]);
}
【问题讨论】:
标签: php redirect yii2 yii2-advanced-app