首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >将旧的url动态301转换为新的url模式?

将旧的url动态301转换为新的url模式?
EN

Stack Overflow用户
提问于 2010-10-01 07:28:32
回答 2查看 1.6K关注 0票数 1

我已经从下面更新了我的url模式:

代码语言:javascript
复制
(r'^(?P<slug>[-\w]+)/$', 'bugs.views.bug_detail'),

代码语言:javascript
复制
(r'^issue/(?P<id>[0-9]+)/(?P<slug>[-\w]+)/$', 'bugs.views.bug_detail'),

因此,我现在依赖于URL中的主键,因为段塞可以随时更改。我有大约40-50个链接,我需要301蜘蛛/爬虫。

在Django中执行301的最简单方法是什么,而不是在我的Apache conf中硬编码Redirect 301

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2010-10-01 07:40:18

啊,我想通了。我保留了旧的url模式,将其路由到bugs.views.bug_detail_redirect,并定义了一个使用slug的方法并执行301:

代码语言:javascript
复制
from django.http import HttpResponse, HttpResponseRedirect, HttpResponsePermanentRedirect

def bug_detail_redirect(request,  slug):
    #bug = get_object_or_404(Bug,id=id)
     bug = get_object_or_404(Bug,slug=slug)
     return HttpResponsePermanentRedirect(bug.get_absolute_url())
票数 1
EN

Stack Overflow用户

发布于 2012-02-21 12:05:22

实际上,https://docs.djangoproject.com/en/dev/ref/generic-views/#django-views-generic-simple-redirect-to可能更接近您正在寻找的内容。

代码语言:javascript
复制
from django.views.generic.simple import redirect_to

urlpatterns = patterns('',
    ('^foo/(?P<id>\d+)/$', redirect_to, {'url': '/bar/%(id)s/'}),
)

这样你就不需要把你的视图搞乱了。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3835519

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档