如何将从特定模式开始的所有网址重定向到另一个?
说明
我希望能够重定向如下:
/pattern1/step1/ to /pattern2/step1/
/pattern1/step2/ to /pattern2/step2/
/pattern1/continue/ to /pattern2/continue/
在Django URL模式中执行此操作的最简单方法是什么?
答案 0 :(得分:5)
RedirectView有效。使用命名的kwarg捕获路径的其余部分。它将被传递到RedirectView.get_redirect_url
,因此您可以将其插入到您提供的网址中。
url(r'^pattern1/(?P<url>.+)$', RedirectView.as_view(url="/pattern2/%(url)s")),
# ^ ^
# | this url appears here |
答案 1 :(得分:0)
您可以使用redirect_to
通用视图,并在urls.py中添加重定向网址:
from django.views.generic.simple import redirect_to
urlpatterns = patterns('',
('^pattern1/step1/$', redirect_to, {'url': '/pattern2/step1/'}),
#any more patters.
)
以下是文档:Generic view redirect_to 。这些也可以采用参数。
答案 2 :(得分:0)
还可以在Web服务器级别处理重定向。