URL リダイレクトは、運用 Web サイトを維持するための基本的な部分です。 Web サイトのある部分から別の部分にユーザーをリダイレクトする理由にはさまざまな理由がありますが、ユーザー エクスペリエンスを向上させ、SEO (検索エンジン最適化) を可能な限り最大限に維持するには、適切にリダイレクトすることが重要です。 .
Django には、リダイレクトの管理に役立つ組み込みのリダイレクト アプリが付属していますが、公式ドキュメントは初心者にとって特に親切ではないため、このチュートリアルを参照してください。
Django リダイレクト アプリは、サイト フレームワークと連携して動作します。これも組み込みではありますが、自動的にはインストールされません。 Django 開発者として、両方を完全に使用するには、いくつかのセットアップが必要です。
サイト フレームワークを構成するには、それを settings.py の INSTALLED_APPS 構成に追加し、SITE_ID を設定します。サイトが 1 つだけある 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
Sites フレームワークと同様に、リダイレクト アプリはデフォルトで 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
セットアップが完了しました。これを使用するための 2 つの異なるアプローチを見てみましょう。
Django 管理者は、コードを書かずにリダイレクトを管理するための使いやすい方法です。これは、少数のリダイレクトをすばやく設定する場合や、技術者以外のチーム メンバーに最適です。
管理者にログインします。[リダイレクト] セクションと [サイト] セクションが表示されます。
リダイレクトの横にある「+追加」ボタンをクリックします。サイト、「リダイレクト元」パス、「リダイレクト先」パスを選択するフォームが表示されます。ページに記載されているように、前者には絶対パスを使用し、後者には絶対パスまたは完全な URL を使用します。
ここでは、「example.com/old」から「example.com/new」へのリダイレクトを追加する例を示します。
保存すると、メインの「リダイレクト」ページに移動し、既存のすべてのリダイレクトを表示および編集できます。
サイトの「example.com」部分を変更する場合は、「サイト」セクションをクリックすると、ドメイン名または表示名を更新できます。表示名は人間が読めるサイトの名前で、管理者や識別用のテンプレートで使用されます。ドメイン名は、サイトマップなどで URL の生成と検証に使用されます。
リダイレクト アプリはデフォルトで永続 (301) リダイレクトを使用します。これは通常、SEO 目的で必要なものです。大量のリダイレクトがパフォーマンスに影響を与える可能性があるため、定期的にリダイレクトを確認し、運用 Web サイトのパフォーマンスを監視することが重要です。これが問題となる場合は、キャッシュ オプションを検討することをお勧めします。また、ローカル環境、ステージング環境、実稼働環境間の移行を容易にするために、新しいパスには相対 URL を使用することを忘れないでください。最後のヒントは、リダイレクトが期待どおりに機能していることを確認するテストを追加することです。
Django Web サイトの SEO を最適化するための追加のヒントが必要な場合は、このトピックに関するチュートリアルのリストを確認してください。
以上がDjango リダイレクト アプリのチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。