2016-07-21 6 views
0

У меня есть статьи в моем веб-приложении yii, я хочу просмотреть заголовок статьи вместо id на url, я проследовал по этой ссылке: http://www.yiiframework.com/forum/index.php/topic/43874-urlmanager-show-title-instead-of-id/ я изменил функцию createUrl быть:Просмотреть заголовок статьи на url вместо id в yii 1 веб-приложение для SEO довольно URL-адресов

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 я ва nt должно быть
http://localhost/test/article/article-title

заблаговременно.

+0

Является ли ваше название статьи уникальным или что –

+0

Нет, это не так. –

ответ

1

Я делаю что-то подобное, но вы не хотите избегать использования уникального идентификатора, чтобы найти свою статью, потому что вы не можете зависеть от уникальных названий или даже не меняться.
Это хорошая практика, чтобы не использовать autonumeric Id, по крайней мере публично в URL, так что вы могли бы что-то вроде этого:
"article/<key:\w{6}>/<title>"

Таким образом, URL, будет как: article/e87qy2/The_book_title_here И вы просто игнорировать заголовок и использовать ключ, который должен быть уникальным для каждой статьи.
Конечно, буквенно-цифровой хэш или клавиша не очень отличается от числового идентификатора, но по крайней мере вы избавились от выявления взаимной информации о вашей базе данных, указав, что у вас есть автонумерные первичные ключи.

Если вы действительно действительно хотите иметь только заголовок в URL-адресе, то сначала убедитесь, что всякая вновь созданная статья уникальна, а затем просто используйте ее как уникальный ключ для поиска статьи.
Избегание двух одинаковых предметов может потребовать, чтобы вы добавили числа 2, 3 и т. Д. В конце, чтобы сделать их разными.