URL SEO friendly à Yû
-
27-10-2019 - |
Question
Je besoin d'une règle pour http://example.com/post/view/id/1 URL qui sera affiché comme cette http://example.com/post/post_title . Au lieu du numéro d'identification je veux afficher le nom de poste ou titre.
Mon look de configuration comme ceci:
'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,
),
La solution
vous devez avoir une règle qui ressemble à ceci
'post/<post_title:\w+>'=>'postController/view/title/<post_title>',
Cela indique simplement l'application aux demandes avant qui commencent par un poste / post_title à la ActionView de poste de commande où $ _GET [ « title »] est réglé sur post_title ...
L'espoir qui aide.
Autres conseils
Il est simple règle
'post/<post_title:\w+>' => 'post/view'
Si besoin url comme cette http://example.com/post/some-title -avec-trait d'union
'post/<post_title:[-\w]+>' => 'post/view'
Et vous avez besoin d'une action de contrôleur avec $ l'argument post_title
public function actionView($post_title) {
...
en défaut, Yii ne retreive l'id poste, si vous voulez afficher le titre poste, vous devez accéder à la base de données de votre auto dans une coutume règles de classe URL. il est un exemple dans le tutoriel yu appelé