検索
ホームページバックエンド開発Python チュートリアルDjango リダイレクト アプリのチュートリアル

URL リダイレクトは、運用 Web サイトを維持するための基本的な部分です。 Web サイトのある部分から別の部分にユーザーをリダイレクトする 理由 にはさまざまな理由がありますが、ユーザー エクスペリエンスを向上させ、SEO (検索エンジン最適化) を可能な限り最大限に維持するには、適切にリダイレクトすることが重要です。 .

Django には、リダイレクトの管理に役立つ組み込みのリダイレクト アプリが付属していますが、公式ドキュメントは初心者にとって特に親切ではないため、このチュートリアルを参照してください。

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 つの異なるアプローチを見てみましょう。

アプローチ 1: 管理インターフェイス

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 目的で必要なものです。大量のリダイレクトがパフォーマンスに影響を与える可能性があるため、定期的にリダイレクトを確認し、運用 Web サイトのパフォーマンスを監視することが重要です。これが問題となる場合は、キャッシュ オプションを検討することをお勧めします。また、ローカル環境、ステージング環境、実稼働環境間の移行を容易にするために、新しいパスには相対 URL を使用することを忘れないでください。最後のヒントは、リダイレクトが期待どおりに機能していることを確認するテストを追加することです。

Django Web サイトの SEO を最適化するための追加のヒントが必要な場合は、このトピックに関するチュートリアルのリストを確認してください。

以上がDjango リダイレクト アプリのチュートリアルの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
Pythonの実行モデル:コンパイル、解釈、またはその両方?Pythonの実行モデル:コンパイル、解釈、またはその両方?May 10, 2025 am 12:04 AM

pythonisbothcompiledinterted.whenyourunapythonscript、itisfirstcompiledintobytecode、これはdenepythonvirtualmachine(pvm).thishybridapproaChallowsforplatform-platform-denodent-codebutcututicut。

Pythonはラインごとに実行されますか?Pythonはラインごとに実行されますか?May 10, 2025 am 12:03 AM

Pythonは厳密に行ごとの実行ではありませんが、最適化され、インタープレーターメカニズムに基づいて条件付き実行です。インタープリターは、コードをPVMによって実行されるBytecodeに変換し、定数式または最適化ループを事前促進する場合があります。これらのメカニズムを理解することで、コードを最適化し、効率を向上させることができます。

Pythonの2つのリストを連結する代替品は何ですか?Pythonの2つのリストを連結する代替品は何ですか?May 09, 2025 am 12:16 AM

Pythonに2つのリストを接続する多くの方法があります。1。オペレーターを使用しますが、これはシンプルですが、大きなリストでは非効率的です。 2。効率的ですが、元のリストを変更する拡張メソッドを使用します。 3。=演算子を使用します。これは効率的で読み取り可能です。 4。itertools.chain関数を使用します。これはメモリ効率が高いが、追加のインポートが必要です。 5。リストの解析を使用します。これはエレガントですが、複雑すぎる場合があります。選択方法は、コードのコンテキストと要件に基づいている必要があります。

Python:2つのリストをマージする効率的な方法Python:2つのリストをマージする効率的な方法May 09, 2025 am 12:15 AM

Pythonリストをマージするには多くの方法があります。1。オペレーターを使用します。オペレーターは、シンプルですが、大きなリストではメモリ効率的ではありません。 2。効率的ですが、元のリストを変更する拡張メソッドを使用します。 3. Itertools.chainを使用します。これは、大規模なデータセットに適しています。 4.使用 *オペレーター、1つのコードで小規模から中型のリストをマージします。 5. numpy.concatenateを使用します。これは、パフォーマンス要件の高い大規模なデータセットとシナリオに適しています。 6.小さなリストに適したが、非効率的な追加方法を使用します。メソッドを選択するときは、リストのサイズとアプリケーションのシナリオを考慮する必要があります。

コンパイルされた通信言語:長所と短所コンパイルされた通信言語:長所と短所May 09, 2025 am 12:06 AM

compiledlanguagesOfferspeedandsecurity、foredlanguagesprovideeaseofuseandportability.1)compiledlanguageslikec arefasterandsecurebuthavelOnderdevelopmentsplat dependency.2)

Python:ループのために、そして最も完全なガイドPython:ループのために、そして最も完全なガイドMay 09, 2025 am 12:05 AM

Pythonでは、forループは反復可能なオブジェクトを通過するために使用され、条件が満たされたときに操作を繰り返し実行するためにしばらくループが使用されます。 1)ループの例:リストを通過し、要素を印刷します。 2)ループの例:正しいと推測するまで、数値ゲームを推測します。マスタリングサイクルの原則と最適化手法は、コードの効率と信頼性を向上させることができます。

Python concatenateリストを文字列に入れますPython concatenateリストを文字列に入れますMay 09, 2025 am 12:02 AM

リストを文字列に連結するには、PythonのJoin()メソッドを使用して最良の選択です。 1)join()メソッドを使用して、 '' .join(my_list)などのリスト要素を文字列に連結します。 2)数字を含むリストの場合、連結する前にマップ(str、数字)を文字列に変換します。 3) '、'などの複雑なフォーマットに発電機式を使用できます。 4)混合データ型を処理するときは、MAP(STR、Mixed_List)を使用して、すべての要素を文字列に変換できるようにします。 5)大規模なリストには、 '' .join(lage_li)を使用します

Pythonのハイブリッドアプローチ:コンピレーションと解釈を組み合わせたPythonのハイブリッドアプローチ:コンピレーションと解釈を組み合わせたMay 08, 2025 am 12:16 AM

pythonusesahybridapproach、コンコイリティレーショントビテコードと解釈を組み合わせて、コードコンピレッドフォームと非依存性bytecode.2)

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

DVWA

DVWA

Damn Vulnerable Web App (DVWA) は、非常に脆弱な PHP/MySQL Web アプリケーションです。その主な目的は、セキュリティ専門家が法的環境でスキルとツールをテストするのに役立ち、Web 開発者が Web アプリケーションを保護するプロセスをより深く理解できるようにし、教師/生徒が教室環境で Web アプリケーションを教え/学習できるようにすることです。安全。 DVWA の目標は、シンプルでわかりやすいインターフェイスを通じて、さまざまな難易度で最も一般的な Web 脆弱性のいくつかを実践することです。このソフトウェアは、

VSCode Windows 64 ビットのダウンロード

VSCode Windows 64 ビットのダウンロード

Microsoft によって発売された無料で強力な IDE エディター

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

PhpStorm Mac バージョン

PhpStorm Mac バージョン

最新(2018.2.1)のプロフェッショナル向けPHP統合開発ツール