Django默认语言重定向

时间:2014-05-26 14:04:05

标签: django redirect localization

关于@Cauê然后回答这个与i18默认语言相关的有用article, 有没有办法在用户进入默认语言页面时添加301重定向?

即。如果您的默认应用程序语言是英语,那么请转到:

http://www.whatever.com/en/contact/,创建永久重定向到http://www.whatever.com/contact/

会很棒

这对于避免Google检测到我们网站中的重复内容特别有帮助。

3 个答案:

答案 0 :(得分:0)

<强> urls.py

urlpatterns += url(r'^contact/$', contact,
        name='contact')
urlpatterns += url(r'^en/contact/$', contact_redirect,
        name='contact_redirect')

<强> views.py

def default_language_redirect(request):
    return redirect('contact')

def contact(request):
    #....

答案 1 :(得分:0)

我会使用重写工具在网络服务器级别执行此操作。

如果那不是一个选项,我会创建新的middleware来检查request.path是否以/en/开头并返回301重定向。

答案 2 :(得分:0)

如果您在网址格式中使用国际化,则只需将prefix_default_language设置为False即可:请参阅django docs

这''从默认语言(LANGUAGE_CODE)''中删除前缀。

默认设置为True。