Yii中的SEO友好URL

6

我需要一个规则来将URL http://example.com/post/view/id/1 显示成这样 http://example.com/post/post_title。我希望在URL中显示文章名称或标题,而不是ID号。

我的配置文件如下:

 'urlManager'=>array(
        'urlFormat'=>'path',
        'rules'=>array(             
            //'<controller:\w+>/<id:\d+>'=>'<controller>/view',
            //'<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>',
            //'<controller:\w+>/<action:\w+>'=>'<controller>/<action>',
        ),
                    'showScriptName'=>false,
    ),
3个回答

3
这是一个简单的规则。
'post/<post_title:\w+>' => 'post/view'

如果需要这样的网址http://example.com/post/some-title-with-hyphen,则可以采取以下步骤。
'post/<post_title:[-\w]+>' => 'post/view'

你需要一个带有$post_title参数的控制器动作。
public function actionView($post_title) {
    ...

3
你需要有一个像这样的规则。
'post/<post_title:\w+>'=>'postController/view/title/<post_title>',

这只是告诉应用程序将以post/post_title开头的请求转发到帖子控制器的actionView,其中$_GET['title']设置为post_title...希望这有所帮助。

1

默认情况下,Yii只检索文章ID。如果您想显示文章标题,则需要在自定义URL类规则中自行访问数据库。Yii教程中有一个示例称为使用自定义URL规则类


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接