为了seo做到优化,我觉得url不应该出些module name,controller name。只应该出现文章的slug.
我自己的小说站是这说设计的
http://www.x.com/gulong 作者古龙的信息
http://www.x.com/xiaolifeidao 小说《小李飞刀》的具体内容。
http://www.x.com/youxiuzhuojiapaiming 这是一个论坛的版块《优秀作家排名》
我会有一个system_slug表。
根据slug表查询出这篇文章的是属于news模块,还是属于小说模块。
systemcontroller { public funciton distributioncontroller($slug) { $module = select modulename from system_slugs where slug='slug'; $contoller = select contollername from system_slugs where slug='slug'; return $module::$contollername($slug); }}
1,我这个小说站用的是laravel,很方便这样写。如果换成yii2的,这样写行得通吗,(下一个项目比较大,也比较长久,已经决心用yii2,yii2的路由分配好像不足够灵活?)
2,这种模式来优化seo有没有问题啊?
3,我在国外的stackflow上看到有人提这个问题。有人回答说最好用restfull来处理这样设计,我不懂。用restfull怎么就更有利于实现这样的想法呢?
回复内容: 为了seo做到优化,我觉得url不应该出些module name,controller name。只应该出现文章的slug.
我自己的小说站是这说设计的
http://www.x.com/gulong 作者古龙的信息
http://www.x.com/xiaolifeidao 小说《小李飞刀》的具体内容。
http://www.x.com/youxiuzhuojiapaiming 这是一个论坛的版块《优秀作家排名》
我会有一个system_slug表。
根据slug表查询出这篇文章的是属于news模块,还是属于小说模块。
systemcontroller { public funciton distributioncontroller($slug) { $module = select modulename from system_slugs where slug='slug'; $contoller = select contollername from system_slugs where slug='slug'; return $module::$contollername($slug); }}
1,我这个小说站用的是laravel,很方便这样写。如果换成yii2的,这样写行得通吗,(下一个项目比较大,也比较长久,已经决心用yii2,yii2的路由分配好像不足够灵活?)
2,这种模式来优化seo有没有问题啊?
3,我在国外的stackflow上看到有人提这个问题。有人回答说最好用restfull来处理这样设计,我不懂。用restfull怎么就更有利于实现这样的想法呢?
你这种写法当然也没太大问题,url路径会比较短,但是目录结构层次不够清晰。为了做seo重点是不能有动态url,也就是带上问号的那种。restful的风格是比较好处理这种情况,也不用去配复杂的路由。
比如说你这个情况,这些都应该属于某一种类型,那么url就应该是:
http://www.x.com/author/gulong 作者古龙的信息
http://www.x.com/novel/xiaolifeidao 小说《小李飞刀》的具体内容。
http://www.x.com/board/youxiuzhuojiapaiming 这是一个论坛的版块《优秀作家排名》
但是上面直接用拼音挺奇怪的,因为这是个动态增长的数据,所以一般来说是id编号,以小说为例:
http://www.x.com/novel/1
对应的novelcontroller就有一个“/novel/{id}”的url来对应,id根据url动态获取即可。
这样的设计有明确的分类,目录层次也不会太多,人看起来容易懂,爬虫也容易理解,所以自然权重会更高一点。