如何在yii2中为动态标题创建seo友好url
我在多个帖子网站上工作,将有多个帖子,我需要做的是,我需要动态seo友好的url和帖子标题,如何在yii2中为动态标题创建seo友好url,yii2,yii2-advanced-app,yii2-basic-app,Yii2,Yii2 Advanced App,Yii2 Basic App,我在多个帖子网站上工作,将有多个帖子,我需要做的是,我需要动态seo友好的url和帖子标题, 假设我创建了一个类似“sachin tendulkar”的帖子,那么在yii2中,它的url应该类似http://domain.com/sachin-tendulkar如何在url中执行此操作?有谁有更好的解决方案吗我如何在yii2中处理此问题,如果有任何示例,我将非常感谢。我试着用谷歌搜索,但没有找到任何合适的解决办法 在包含帖子的表中创建新列,并在ActiveRecord中添加以下代码: publi
假设我创建了一个类似
“sachin tendulkar”
的帖子,那么在yii2中,它的url应该类似http://domain.com/sachin-tendulkar
如何在url中执行此操作?有谁有更好的解决方案吗我如何在yii2中处理此问题,如果有任何示例,我将非常感谢。我试着用谷歌搜索,但没有找到任何合适的解决办法 在包含帖子的表中创建新列,并在ActiveRecord中添加以下代码:
public function behaviors()
{
return [
[
'class' => yii\behaviors\SluggableBehavior::className(),
'attribute' => 'title',
// 'slugAttribute' => 'slug',
],
];
}
帖子的标题将在slug中自动创建
之后,在控制器中的动作方法中使用此slug以获得正确的帖子。例如:
class PostController extends Controller
{
public function actionView($slug)
{
$post = Post::findOne(['slug'=>$slug]);
.....
}
}
此外,对于pretty url,您应该在配置文件()的urlManager部分中设置enablePrettyUrl属性,并设置如下规则:
'urlManager' => [
'enablePrettyUrl'=>true,
'showScriptName'=>false,
....
'rules' => [
'post/<slug:[a-zA-Z0-9_ -]+>' => 'post/view',
....
],
]
'urlManager'=>[
“enablePrettyUrl”=>true,
'showScriptName'=>false,
....
“规则”=>[
'发布/'=>'发布/查看',
....
],
]