如何管理 Django url 别名重定向



我想正确设置我的网址,避免像下面的示例那样这样做,因为它会影响我的谷歌索引:

urls.py(错误的方式(:

url(r'^virtual-reality/$', views.virtualreality, name="virtual-reality"),
url(r'^virtual-reality$', views.virtualreality, name="virtual-reality"),
url(r'^vr/$', views.virtualreality, name="virtual-reality"),
url(r'^vr$', views.virtualreality, name="virtual-reality"),

如您所见,我希望vr/vrvirtual-reality/virtual-reality重定向到同一页面。我的网站上有 30 多个 URL,由于结构增长,像这样进行每个 url 重定向都是有问题的。

我不在我的 Django 网站上使用 Apache,所以无法制定重写规则。(我在pythonanywhere(网络服务器:Gunicorn((

不影响我的 google 搜索索引的情况下在同一视图中重定向所有类型的别名并避免输入具有相同视图的每个 url 以 urls.py 的最佳方法是什么?

最好的

方法是使用 django 重定向应用程序 https://docs.djangoproject.com/en/1.10/ref/contrib/redirects/您可以使用它轻松管理来自管理员的重定向。

解决尾部斜杠问题的另一种方法是在正则表达式中使用?标志。

url(r'^virtual-reality/?$', views.virtualreality, name="virtual-reality"),
url(r'^vr/?$', views.virtualreality, name="virtual-reality"),

如果使用 CommonMiddleware,它会添加尾部斜杠并返回视图(如果在任何 urlpattern 中都找不到没有尾部斜杠的版本(。可以在文档中看到。

毕竟urls.py是Python

只需编写一个合适的数据结构,即可捕获您想要的内容并使用循环生成包含从中调用url()的列表。

最新更新