리디렉션

redirects 모듈은 URL과 Page 또는 다른 URL 간의 임의 리디렉션을 관리하기 위한 모델 및 사용자 인터페이스를 제공합니다.

설치

redirects 모듈은 기본적으로 활성화되어 있지 않습니다. 설치하려면 프로젝트의 Django 설정 파일에 INSTALLED_APPSwagtail.contrib.redirects 를 추가하고 MIDDLEWAREwagtail.contrib.redirects.middleware.RedirectMiddleware 를 추가합니다.

INSTALLED_APPS = [
    # ...

    'wagtail.contrib.redirects',
]

MIDDLEWARE = [
    # ...
    # 다른 모든 Django 미들웨어 먼저

    'wagtail.contrib.redirects.middleware.RedirectMiddleware',
]

이 앱에는 마이그레이션이 포함되어 있으므로 설치 후 migrate django-admin 명령을 실행해야 합니다.

사용법

설치되면 “설정” 메뉴에 “리디렉션”이라는 새 메뉴 항목이 나타나야 합니다. 여기에서 사이트에 임의의 리디렉션을 추가할 수 있습니다.

인터페이스에 대한 편집자 가이드는 방법 가이드: 리디렉션 관리를 참조하십시오.

자동 리디렉션 생성

Wagtail은 페이지(및 해당 하위 페이지)가 이동되거나 슬러그가 변경될 때 자동으로 영구 리디렉션을 생성합니다. 이는 시간이 지남에 따라 페이지의 SEO 순위를 유지하는 데 도움이 되며, 북마크를 사용하거나 오래된 링크를 사용할 때 사이트 방문자가 올바른 위치로 이동하는 데 도움이 됩니다.

대체 페이지 경로에 대한 리디렉션 생성

RoutablePageMixin 을 사용하여 대체 경로가 있는 페이지를 만드는 경우 해당 페이지 유형에 대해 get_route_paths() 메서드를 재정의하는 것을 고려할 수 있습니다. 이 목록에 인기 있는 경로 경로를 추가하면 추가 리디렉션이 생성됩니다. 대체 경로로 방문자가 올바른 위치로 이동하는 데 도움이 됩니다.

자세한 내용은 get_route_paths() 를 참조하십시오.

자동 리디렉션 생성 비활성화

Wagtail의 기본 구현은 Wagtail의 내장 URL 생성 메서드를 주로 사용하는 중소 규모 프로젝트(5000페이지 이하)에 가장 적합합니다.

다음 Page 메서드에 대한 재정의는 리디렉션을 생성할 때 존중되지만, 해당 재정의에서 특정 페이지 필드를 사용하면 추가 데이터베이스 쿼리가 트리거됩니다.

이 기능이 프로젝트에 적합하지 않다고 판단되면 프로젝트 설정에 다음을 추가하여 비활성화할 수 있습니다.

WAGTAILREDIRECTS_AUTO_CREATE = False

관리 명령

import_redirects

./manage.py import_redirects

이 명령은 사용자가 제공한 파일에서 리디렉션을 가져오고 생성합니다.

옵션:

옵션

설명

src

리디렉션을 가져올 파일의 경로입니다.

site

리디렉션을 저장할 사이트의 사이트입니다.

permanent

가져온 리디렉션이 영구적인지(True) 아닌지(False)입니다. 기본값은 True입니다.

from

리디렉션 시작 값으로 사용할 열 인덱스입니다.

to

리디렉션 대상 값으로 사용할 열 인덱스입니다.

dry_run

변경 없이 가져오기를 실행할 수 있습니다.

ask

생성하기 전에 각 리디렉션을 검사하고 승인할 수 있습니다.

Redirect 클래스

class wagtail.contrib.redirects.models.Redirect(id, old_path, site, is_permanent, redirect_page, redirect_page_route_path, redirect_link, automatically_created, created_at)
static add_redirect(old_path, redirect_to=None, is_permanent=True, page_route_path=None, site=None, automatically_created=False)

Create and save a Redirect instance with a single method.

매개변수:
  • old_path – the path you wish to redirect

  • site – the Site (instance) the redirect is applicable to (if not all sites)

  • redirect_to – a Page (instance) or path (string) where the redirect should point

  • is_permanent – whether the redirect should be indicated as permanent (i.e. 301 redirect)

반환:

Redirect instance

API

리디렉션을 검색하거나 경로별로 특정 리디렉션을 찾기 위한 API 엔드포인트를 만들 수 있습니다.

Wagtail API를 구성하는 방법에 대한 자세한 내용은 Wagtail API v2 설정 가이드 문서를 참조하십시오.

리디렉션 엔드포인트를 추가하려면 다음 코드를 추가하십시오.

from wagtail.contrib.redirects.api import RedirectsAPIViewSet

api_router.register_endpoint('redirects', RedirectsAPIViewSet)

이 구성을 사용하면 리디렉션은 /api/v2/redirects/ 에서 사용할 수 있습니다.

경로별 특정 리디렉션은 /api/v2/redirects/find/?html_path=<path> 로 해결할 수 있으며, 이는 리디렉션 세부 정보가 포함된 200 응답 또는 404 찾을 수 없음 응답을 반환합니다.