Django的urls.py中的RedirectMatch 301

时间:2012-05-20 02:22:25

标签: django django-urls

由于Django不执行.htaccess(至少在我的主机上),我需要以与你执行.htaccess RedirectMatch类似的方式执行301 RedirectMatch:

RedirectMatch 301 ^/oldfolder/(.*)$ http://sub.domain.com/newfolder/$1

通配符的工作方式与.htaccess的工作方式不同,所以任何帮助都会受到赞赏!它也必须是永久重定向,以便搜索索引知道它已被移动。我将重定向的内容是图像到我的新CDN子域。

1 个答案:

答案 0 :(得分:2)

未经测试:

# Django >= 1.3
from Django.views.generic.base import RedirectView


urls = patterns('', 
   # some patterns here...

   url(
       r"^oldfolder/(?P<whatever>.*)$",
       RedirectView.as_view(
          url="http://sub.domain.com/newfolder/%(whatever)s",
          )
      ),

   # more patterns here
  )     

[edit]重新阅读你的问题:“我将图像重定向到我的新CDN子域” - 如果这是关于静态媒体(图像,CSS等)那么它们不应该由Django提供,而是由你的前端提供Web服务器(Apache,Nginx,等等)所以假设Apache你可以在你的vhost配置中使用一个简单的RedirectMatch