3

如何将所有从特定模式开始的 URL 重定向到另一个模式?

描述:

我希望能够重定向如下:

/pattern1/step1/ to /pattern2/step1/
/pattern1/step2/ to /pattern2/step2/
/pattern1/continue/ to /pattern2/continue/

在 Django URL 模式中执行此操作的最简单方法是什么?

4

3 回答 3

5

重定向视图有效。使用命名的 kwarg 捕获路径的其余部分。它将被传递到RedirectView.get_redirect_url中,因此您可以将其插入到您提供的 url 中。

url(r'^pattern1/(?P<url>.+)$', RedirectView.as_view(url="/pattern2/%(url)s")),
#                    ^                                                ^
#                    | this url                         appears here  |
于 2012-10-12T08:51:28.800 回答
0

您可以使用redirect_to通用视图并在 urls.py 中添加重定向 url:

from django.views.generic.simple import redirect_to

urlpatterns = patterns('',
    ('^pattern1/step1/$', redirect_to, {'url': '/pattern2/step1/'}),
    #any more patters.
)

这是文档:通用视图 redirect_to。这些也可以采用参数。

于 2012-10-12T08:33:25.477 回答
0

也可以在 Web 服务器级别处理重定向。

于 2012-10-12T08:37:38.270 回答