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中文網其他相關文章!