Search code examples
phpyiiclean-urlsyii-url-manager

SEO friendly url in Yii


I need a rule for http://example.com/post/view/id/1 url that will be displayed like this http://example.com/post/post_title. Instead of the id number i want to display the post name or title.

My config looks like this:

 '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,
    ),

Solution

  • you need to have a rule that looks like this

    'post/<post_title:\w+>'=>'postController/view/title/<post_title>',
    

    This just tells the app to forward requests that start with a post/post_title to the post controller's actionView where $_GET['title'] is set to post_title...

    Hope that helps.