3

在django中将“mywebsite.com///”之类的网址重定向到“mywebsite.com/”的最佳方法是什么?

我可以在 settings.py 文件中使用与此相反的设置APPEND-SLASH还是必须使用

from django.views.generic.simple import redirect_to

并在 urls.py 文件中添加一个 urlpattern?

编辑:我不想让网页与“mywebsite.com/”相同,我试图让实际的网址更改为“mywebsite.com/”。对困惑感到抱歉。

4

2 回答 2

1

如果您愿意,您应该在 urls.py 文件中添加一个与此 url 匹配的 url 模式,并添加斜杠。

每个模式只是一个正则表达式,所以你可以很容易地告诉它匹配任何带有额外斜杠的 url。

urlpatterns = patterns('django.views.generic.simple',
('^your/url/*$', 'redirect_to', {'url': '/your/url/'}),
)

通过将 /* 添加到 url 模式,它将匹配 /your/url/ 后面带有任意数量的斜杠。

于 2013-04-06T15:53:51.470 回答
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/

于 2013-04-06T15:57:11.467 回答