首页 文章

在网址上查看文章 Headers ,而不是在yii 1网页应用程序中搜索SEO漂亮网址的ID

提问于
浏览
0

我在我的yii web应用程序中有文章,我想在URL上查看文章 Headers 而不是id,我已经按照以下链接:http://www.yiiframework.com/forum/index.php/topic/43874-urlmanager-show-title-instead-of-id/我将createUrl函数更改为:

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

并将以下规则添加到url manager,如下所示:

'<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我想成为
http://localhost/test/article/article-title

先感谢您 .

1 回答

  • 1

    我做了类似的事情,但你不依赖于 Headers 是独特的,甚至不会改变 .
    最好不要在URL中至少公开使用自动数字Id,所以你可以这样:
    "article/<key:\w{6}>/<title>"

    因此,URL将如下: article/e87qy2/The_book_title_here 您只需忽略 Headers 并使用每篇文章必须唯一的密钥 .
    当然,字母数字哈希或键与数字ID不是很相似,但至少通过显示您具有自动数字主键,您可以摆脱显示有关数据库的内部信息 .

    如果你真的不可避免地希望在网址中只有 Headers ,那么,首先要确保任何新创建的文章都是唯一的,然后只需将其用作查找文章的唯一键 .
    避免两个相同的文章可能要求您在末尾添加数字2,3等,以使它们不同 .

相关问题