URL 重定向是维护生产网站的基本部分。有很多原因为什么您可能希望将用户从网站的一个部分重定向到另一个部分,但正确执行此操作对于获得积极的用户体验并保持最大程度的 SEO(搜索引擎优化)非常重要.
Django 附带了一个内置的重定向应用程序来帮助管理重定向,但官方文档对新手来说并不是特别友好,因此本教程。
Django 重定向应用程序与站点框架一起工作,该框架也是内置的,但不会自动安装。作为 Django 开发人员,我们需要进行一些设置才能充分使用两者。
要配置 Sites 框架,请将其添加到 settings.py 中的 INSTALLED_APPS 配置中并设置 SITE_ID。通常将只有一个站点的 Web 应用程序定义为 1。
# settings.py INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", "django.contrib.sites", # new ] SITE_ID = 1 # new
为了完整起见,您应该立即运行迁移来更新数据库。
(.venv) $ python manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, sessions, sites Running migrations: Applying sites.0001_initial... OK Applying sites.0002_alter_domain_unique... OK
与站点框架一样,重定向应用程序默认包含在 Django 中,但需要一些配置。我们将更新 INSTALLED_APPS、MIDDLEWARE,并再次运行数据库迁移。请注意,添加中间件时,应将其放置在底部附近才能正常工作,因为中间件对于 HTTP 请求是从上到下运行的(对于 HTTP 响应是从下到上运行的,但这是另一天的主题)。
# settings.py INSTALLED_APPS = [ "django.contrib.admin", "django.contrib.auth", "django.contrib.contenttypes", "django.contrib.sessions", "django.contrib.messages", "django.contrib.staticfiles", "django.contrib.sites", "django.contrib.redirects", # new # other local and 3rd party apps ] MIDDLEWARE = [ "django.middleware.security.SecurityMiddleware", "django.contrib.sessions.middleware.SessionMiddleware", "django.middleware.common.CommonMiddleware", "django.middleware.csrf.CsrfViewMiddleware", "django.contrib.auth.middleware.AuthenticationMiddleware", "django.contrib.messages.middleware.MessageMiddleware", "django.middleware.clickjacking.XFrameOptionsMiddleware", # ... any other custom middleware ... "django.contrib.redirects.middleware.RedirectFallbackMiddleware", # new ]
现在运行迁移来创建重定向应用程序工作所需的数据库表。
(.venv) $ python manage.py migrate Operations to perform: Apply all migrations: admin, auth, contenttypes, redirects, sessions, sites Running migrations: Applying redirects.0001_initial... OK Applying redirects.0002_alter_redirect_new_path_help_text... OK
我们的设置已完成。让我们探索两种不同的使用方法。
Django 管理是一种用户友好的方式来管理重定向,无需编写任何代码。它非常适合快速设置少量重定向或非技术团队成员。
登录管理员:“重定向”和“站点”部分应该可见。
单击重定向旁边的“+添加”按钮。它会弹出一个表单来选择站点、“重定向自”路径和“重定向至”路径。如页面上所述,前者使用绝对路径,后者使用绝对路径或完整 URL。
这是添加从“example.com/old”到“example.com/new”的重定向的示例。
保存后,您将被发送到主重定向页面,您可以在其中查看和编辑所有现有重定向。
如果您想更改网站的“example.com”部分,请单击“网站”部分,然后您可以更新域名或显示名称。显示名称是站点的人类可读名称,在管理和模板中用于识别。域名用于 URL 生成和验证,例如在站点地图中。
重定向应用程序默认使用永久 (301) 重定向,这通常是您出于 SEO 目的而需要的。定期检查重定向并监控生产网站的性能非常重要,因为大量重定向会影响性能,如果这是一个问题,您可能会考虑缓存选项。另外,请记住对新路径使用相对 URL,以简化本地、临时和生产环境之间的转换。最后一个技巧是添加测试以确认重定向是否按预期工作。
如果您想了解有关优化 Django 网站 SEO 的其他技巧,请查看有关此主题的教程列表。
以上是Django 重定向应用程序教程的详细内容。更多信息请关注PHP中文网其他相关文章!