2016-07-21 13 views
0

我有我的yii web應用程序的文章,我想查看文章標題,而不是id在url,我跟着這個鏈接: http://www.yiiframework.com/forum/index.php/topic/43874-urlmanager-show-title-instead-of-id/ 我改變createUrl功能是:查看文章標題的URL而不是id在yii 1 SEO的漂亮的網址應用程序

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

,並添加以下規則如下網址經理:

 '<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/' 

文章網址現在想: http://localhost/test/article?id=6我はnt是
http://localhost/test/article/article-title

謝謝你提前。

+0

你的文章標題是獨一無二的還是什麼 –

+0

不,它不。 –

回答

1

我做了類似的事情,但您不想避免使用獨特的ID來查找您的文章,因爲您不能依賴標題是獨一無二的,甚至不會發生變化。
這是很好的做法,不是在URL至少在公開場合使用autonumeric標識,所以你可以是這樣的:
"article/<key:\w{6}>/<title>"

因此,網址會像:article/e87qy2/The_book_title_here而你只是忽略了標題,並使用密鑰對於每篇文章必須是唯一的。
當然,字母數字散列或鍵與數字ID沒有太大區別,但至少通過顯示您擁有自動數字主鍵,可以擺脫顯示有關數據庫的內部信息。

如果你確實真的不可避免地想要在url中擁有標題,那麼首先要確保任何新創建的文章都是唯一的,然後將其用作唯一鍵來查找文章。
避免兩個平等的文章可能需要在最後添加數字2,3等,以使它們不同。