0

yiiでブログを作ろうと思っています。article という名前のテーブルがあり、対応するモデル、ビュー、コントローラーはgiiを使用して生成されます。投稿をホームページに表示させたいので設定

defaultController='article'

ホームページには投稿が表示されるのですが、続きを読むのタイトルをクリックすると、URLにコントローラ名が表示されたままです

www.yiisite.com/article/1

したがって、代わりにURLを次のようにしたい:

www.yiisite.com/1

URL でコントローラー名を非表示にしたい。

それを実装するための従来の方法は何ですか?

URLをseoフレンドリーにしたかったので、次のルールを使用しました。

'/<year:\d{4}>/<month:\d{2}/<vanity:[\w\W]+>'=>'article/view' 

ArticleController の loadmodel() で、findByPk($id) を変更して、年、月、および一意のバニティ URL を使用してデータをフェッチします。したがって、www.yiisite.com/2013/07/vanity-url-article のような URL を取得します。

このアプローチは大丈夫ですよね?

4

1 に答える 1

2

urlManagerサイト構成の更新

return array(
 'name'=>'My Project',
 'defaultController'=>'article',
 'components'=>array(
   'urlManager'=>array(
     'urlFormat'=>'path',
     'caseSensitive' =>true,
     'showScriptName'=>false,
     //'useStrictParsing'=>true,
     'rules'=>array(
       '<action:[\w\-]+>' => 'article/<action>',
     ),
   ),
  ),
);
于 2013-08-13T04:02:39.880 に答える