我可以删除django中url中的前导零吗?

时间:2009-12-02 23:51:57

标签: python django .htaccess

重定向来自旧网站的网址,这会将我转到这样的网址:

http://example.com/blog/01/detail

我想自动从这些网址中删除前导零(似乎在那里有多少个零001 0001 000001工作),以便页面重定向到:

http://example.com/blog/1/detail

在django中有一个简单的方法吗? (或者,通过.htaccess重定向?)

网址代码:

url(u'^blog/(?P<object_id>\d+)/detail$', 
    list_detail.object_detail,
    { 'queryset' : Blog.objects.all(), },
    name='blog_detail',)

.htaccess(被重定向):

RewriteRule ^blog-([0-9]+) http://example.com/blog/$1 [R=301]

我需要一些中间件,还是在urls.py文件中有一种简单的方法可以做到这一点?

2 个答案:

答案 0 :(得分:3)

您可以通过查看urls.py正则表达式或.htaccess正则表达式来修复它:

在Django

'^blog/0*(?P<object_id>\d+)/detail$'

在.htaccess

RewriteRule ^blog-0*([0-9]+) http://example.com/blog/$1 [R=301]

答案 1 :(得分:1)

也许

url(u'^blog/0*(?P<object_id>\d+)/detail$', 
    list_detail.object_detail,
    { 'queryset' : Blog.objects.all(), },
    name='blog_detail',)