2016-07-21 4 views
0

私のyii Webアプリケーションに記事があります。私はURLのidの代わりに記事のタイトルを表示したい、私はこのリンクに従っています: http://www.yiiframework.com/forum/index.php/topic/43874-urlmanager-show-title-instead-of-id/ 私がするcreateUrl機能を変更:yiiのidの代わりにurlの記事タイトルを表示するSEO pretty urlsの1つのWebアプリケーション

Yii::app()->createUrl('home/article',array('id'=>$article->id,'title' => $article->title); 

と以下のようにURLマネージャに次のルールを追加します。

 '<action:\w+>'=>'home/<action>', 
      '<action:\w+>/<id:\d+>'=>'home/<action>', 
      '<controller:\w+>/<id:\d+>'=>'<controller>/view', 
      '<controller:\w+>/<action:\w+>/<id:\d+>'=>'<controller>/<action>', 
      '<controller:\w+>/<action:\w+>'=>'<controller>/<action>', 
       'article/<id>/<title>'=>'home/article/view/' 

記事のURLを今のように: http://localhost/test/article?id=6私はWA ntは
http://localhost/test/article/article-title

となります。

+0

あなたの記事のタイトルは一意であるか何ですか –

+0

いいえ、それはありません。 –

答えて

1

私は何か似たようなことをしますが、タイトルが一意であるか、それほど変わっていないことに依存することができないため、一意のIDを使用して記事を検索することは避けたいです。
それはあなたがこのような何かができるよう、URLに少なくとも公にautonumeric IDを使用しないように良い習慣です:
"article/<key:\w{6}>/<title>"

ので、URLはのようになります:article/e87qy2/The_book_title_hereそして、あなただけのタイトルを無視して使用しますキーはすべての記事で一意でなければなりません。
もちろん、英数字のハッシュやキーは、数字のIdとはまったく異なりませんが、少なくともあなたは自律主キーを持っていることを示すことでデータベースについての情報を明らかにしています。

本当に本当に避けられないように、URLにタイトルだけを載せたいのであれば、新しく作成された記事が一意であることを確認してから、その記事を見つけるためのユニークなキーとして使用してください。
2つの等価な記事を避けるには、番号2,3などを末尾に追加して別のものにする必要があります。

関連する問題