在django中将“mywebsite.com///”等网址重定向到“mywebsite.com/”的最佳方法是什么?
我可以在settings.py文件中使用哪种设置与APPEND-SLASH
相反或者我必须使用
from django.views.generic.simple import redirect_to
并在urls.py文件中添加urlpattern?
编辑: 我不想让网页与“mywebsite.com/”相同,我正在尝试将实际网址更改为“mywebsite.com/”。对不起,感到困惑。
答案 0 :(得分:1)
如果您愿意,您应该在urls.py文件中添加一个与此网址匹配的网址格式,并添加斜杠。
每个模式都只是一个正则表达式,所以你可以很容易地告诉它匹配任何带有额外斜杠的url。
urlpatterns = patterns('django.views.generic.simple',
('^your/url/*$', 'redirect_to', {'url': '/your/url/'}),
)
通过在url模式中添加/ *,它将匹配/ your / url /后面的任意数量的斜杠。
答案 1 :(得分:1)
如果你想在应用程序级别执行此操作,我将避免创建新的urlconf规则,特别是如果它是全局的。
你可以让自己的中间件自动处理这个重定向,因为django在公共中间件中使用APPEND_SLASH设置附加斜杠这里是参考代码:https://github.com/django/django/blob/master/django/middleware/common.py#L66-80
此外,您可能会发现此博客文章中的解决方案很有用:http://gregbrown.co.nz/code/append-or-remove-slash/