2010-02-02 78 views
1

干草家伙,即时制作一个简单的汽车销售网站。我有一个可爱的小urlpattern,其效果如预期django路线帮助

/car/1/ 

去那辆车的ID,简单吗?

但是,对于搜索引擎优化的原因,我想增加额外的数据到网址,但忽略它。

/car/1/ford/focus 

作为一个例子,我将如何去修改我的模式,以考虑额外的部分?

2个模式会去相同的地方并加载相同的视图。

任何想法?

回答

10

这不会帮助您的搜索引擎优化 - 事实上它会积极伤害它。如果/car/1/,/car/1/ford//car/1/ford/focus/都转到相同的URL,那么实际上您已经减少了该页面的搜索权限。这是一个非常糟糕的主意。

如果你真的想这样做,这是非常简单的:

r'^car/(?P<car_id>\d+)/.*/$' 

但我真的不会这么做。一个更好的想法是离开了ID和使用的品牌和型号,以让赛车:

r'^car/(?P<make>\w+)/(?P<model>\w+)/$' 

好,你现在的形式/car/ford/focus/网址,并在您的视图,你可以这样做:

def myview(request, make, model): 
    car = Car.objects.get(make=make, model=model) 
+1

+1的SEO建议 – 2010-02-02 11:28:25

+0

我同意,要好得多离开了ID,并创建一个访问的URL - 见http://www.ibm.com /developerworks/library/us-cranky8.html获取更多信息 – Frozenskys 2010-02-02 11:29:29

+0

谢谢,非常好的主意。 – dotty 2010-02-02 11:38:35

1

使用SlugField(或AutoSlugField)用于构建SEO友好的URL

+0

我实际上转移到了这种方法 – dotty 2010-02-12 16:05:21