可以在Django中去除URL中的前导零吗?

1 投票
2 回答
521 浏览
提问于 2025-04-15 16:38

我正在将一个旧网站的链接进行重定向,这样我得到了一个像这样的链接:

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

我想要自动去掉这些链接前面的零(无论前面有多少个零都没关系,比如 0010001000001 都可以)这样页面就能重定向到:

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 个回答

1

也许

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

撰写回答