问题描述
我正在尝试从 url 隐藏blog id
。
为了更好地理解:
我想要这个URL
mysite/blog/post-slug-<id> // will be like: mysite/blog/post-slug-358
更改为
mysite/blog/post-slug
这是我的网址代码:
<a href="<?= Url::to(['post/view','id' => $model->id,'slug' => $model->slug ]) ?>">
这是我的 config / main :
'urlManager' => [
'class' => 'yii\web\UrlManager','enablePrettyUrl' => true,'showScriptName' => false,'rules' => [
'blog/<slug>-<id>' => 'blog/view',]
有人可以帮我解决吗?
解决方法
从您的网址管理器中删除-<id>
:
'urlManager' => [
'class' => 'yii\web\UrlManager','enablePrettyUrl' => true,'showScriptName' => false,'rules' => [
'blog/<slug>' => 'blog/view',]
]
然后在actionView的BlogController中,可以使用以下代码获取它:
$slug = Yii::$app->getRequest()->getQueryParam('slug');
我不确定“阶级”是否必要?我在我的项目中如何使用它:
'urlManager' => [
'baseUrl' => '/','rules' => [
'ajax/<action>' => 'ajax/<action>','<first_step>/<second_step>/<third_step>' => 'page/index','<first_step>/<second_step>' => 'page/index','<first_step>' => 'page/index','<first_step:.+/>' => 'page/index',// redirect 301 /
],],