Django 重定向应用程序教程

王林
发布: 2024-09-06 06:02:07
原创
956 人浏览过

URL 重定向是维护生产网站的基本部分。有很多原因为什么您可能希望将用户从网站的一个部分重定向到另一个部分,但正确执行此操作对于获得积极的用户体验并保持最大程度的 SEO(搜索引擎优化)非常重要.

Django 附带了一个内置的重定向应用程序来帮助管理重定向,但官方文档对新手来说并不是特别友好,因此本教程。

设置 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 管理是一种用户友好的方式来管理重定向,无需编写任何代码。它非常适合快速设置少量重定向或非技术团队成员。

登录管理员:“重定向”和“站点”部分应该可见。

Django Redirects App Tutorial

单击重定向旁边的“+添加”按钮。它会弹出一个表单来选择站点、“重定向自”路径和“重定向至”路径。如页面上所述,前者使用绝对路径,后者使用绝对路径或完整 URL。

这是添加从“example.com/old”到“example.com/new”的重定向的示例。

Django Redirects App Tutorial

保存后,您将被发送到主重定向页面,您可以在其中查看和编辑所有现有重定向。

Django Redirects App Tutorial

如果您想更改网站的“example.com”部分,请单击“网站”部分,然后您可以更新域名或显示名称。显示名称是站点的人类可读名称,在管理和模板中用于识别。域名用于 URL 生成和验证,例如在站点地图中。

下一步

重定向应用程序默认使用永久 (301) 重定向,这通常是您出于 SEO 目的而需要的。定期检查重定向并监控生产网站的性能非常重要,因为大量重定向会影响性能,如果这是一个问题,您可能会考虑缓存选项。另外,请记住对新路径使用相对 URL,以简化本地、临时和生产环境之间的转换。最后一个技巧是添加测试以确认重定向是否按预期工作。

如果您想了解有关优化 Django 网站 SEO 的其他技巧,请查看有关此主题的教程列表。

以上是Django 重定向应用程序教程的详细内容。更多信息请关注PHP中文网其他相关文章!

来源:dev.to
本站声明
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系admin@php.cn
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!