Django - 从斜杠重定向到非斜杠
Posted
技术标签:
【中文标题】Django - 从斜杠重定向到非斜杠【英文标题】:Django - Redirecting from trailing slash to non-trailing slash 【发布时间】:2011-10-19 19:39:00 【问题描述】:当我使用正则表达式 ^/some/url/$
时,我喜欢 Django 如何从 /some/url
重定向到 /some/url/
,但反之亦然,例如当我使用正则表达式 ^/some/url$
时,从 /some/url/
重定向到 /some/url
。
如何从我的 django 应用程序内部添加此功能,而不是使用手动 mod_rewrite?
【问题讨论】:
不要。如果 ULR 不引用实际文件,则应以斜杠结尾。 @Daniel 当页面是文章的列表或“文件夹”时,我宁愿看到尾部斜杠,而当页面是单篇文章时,我宁愿看到尾部斜杠。例如。/category/
用于文章列表,/category/article-title
用于单篇文章。它为用户提供有关他们可以期待什么类型的页面的信息。
django urls without a trailing slash do not redirect的可能重复
【参考方案1】:
我已经开始工作了。我在我的 URL RegEx 中添加了/?
,就在末尾的$
符号之前。然后我将此添加到我的views.py
:
from django.shortcuts import redirect
# ...
def some_view(request, some_param):
if request.path[-1] == '/':
return redirect(request.path[:-1])
# ...
【讨论】:
以上是关于Django - 从斜杠重定向到非斜杠的主要内容,如果未能解决你的问题,请参考以下文章