如何将所有从特定模式开始的 URL 重定向到另一个模式?
描述:
我希望能够重定向如下:
/pattern1/step1/ to /pattern2/step1/
/pattern1/step2/ to /pattern2/step2/
/pattern1/continue/ to /pattern2/continue/
在 Django URL 模式中执行此操作的最简单方法是什么?
如何将所有从特定模式开始的 URL 重定向到另一个模式?
描述:
我希望能够重定向如下:
/pattern1/step1/ to /pattern2/step1/
/pattern1/step2/ to /pattern2/step2/
/pattern1/continue/ to /pattern2/continue/
在 Django URL 模式中执行此操作的最简单方法是什么?
重定向视图有效。使用命名的 kwarg 捕获路径的其余部分。它将被传递到RedirectView.get_redirect_url
中,因此您可以将其插入到您提供的 url 中。
url(r'^pattern1/(?P<url>.+)$', RedirectView.as_view(url="/pattern2/%(url)s")),
# ^ ^
# | this url appears here |
您可以使用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。这些也可以采用参数。
也可以在 Web 服务器级别处理重定向。