【发布时间】:2010-02-02 11:20:50
【问题描述】:
嘿伙计们,我正在制作一个简单的汽车销售网站。我有一个不错的小 urlpattern,效果很好
/car/1/
去有那个ID的车,简单吗?
但是,出于 SEO 的原因,我想在 URL 中添加额外的数据,但忽略它。
/car/1/ford/focus
例如,我将如何修改我的模式以考虑额外的部分?
这两种模式会去同一个地方并加载同一个视图。
有什么想法吗?
【问题讨论】:
嘿伙计们,我正在制作一个简单的汽车销售网站。我有一个不错的小 urlpattern,效果很好
/car/1/
去有那个ID的车,简单吗?
但是,出于 SEO 的原因,我想在 URL 中添加额外的数据,但忽略它。
/car/1/ford/focus
例如,我将如何修改我的模式以考虑额外的部分?
这两种模式会去同一个地方并加载同一个视图。
有什么想法吗?
【问题讨论】:
这对您的 SEO 没有帮助 - 事实上,它会严重伤害它。如果/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/ 形式的 URL,在你看来你可以这样做:
def myview(request, make, model):
car = Car.objects.get(make=make, model=model)
【讨论】:
.get - 请参阅文档以了解如何跨关系进行查找。如果您仍然无法解决,请发布一个新问题并包含您的模型代码。
使用 SlugField(或 AutoSlugField)构建 SEO 友好的 URL
【讨论】: