(redirects)= # 리디렉션 ```{eval-rst} .. module:: wagtail.contrib.redirects ``` `redirects` 모듈은 URL과 `Page` 또는 다른 URL 간의 임의 리디렉션을 관리하기 위한 모델 및 사용자 인터페이스를 제공합니다. ## 설치 `redirects` 모듈은 기본적으로 활성화되어 있지 않습니다. 설치하려면 프로젝트의 Django 설정 파일에 `INSTALLED_APPS` 에 `wagtail.contrib.redirects` 를 추가하고 `MIDDLEWARE` 에 `wagtail.contrib.redirects.middleware.RedirectMiddleware` 를 추가합니다. ```python INSTALLED_APPS = [ # ... 'wagtail.contrib.redirects', ] MIDDLEWARE = [ # ... # 다른 모든 Django 미들웨어 먼저 'wagtail.contrib.redirects.middleware.RedirectMiddleware', ] ``` 이 앱에는 마이그레이션이 포함되어 있으므로 설치 후 `migrate` django-admin 명령을 실행해야 합니다. ## 사용법 설치되면 "설정" 메뉴에 "리디렉션"이라는 새 메뉴 항목이 나타나야 합니다. 여기에서 사이트에 임의의 리디렉션을 추가할 수 있습니다. 인터페이스에 대한 편집자 가이드는 방법 가이드: [리디렉션 관리](https://guide.wagtail.org/en-latest/how-to-guides/manage-redirects/)를 참조하십시오. ## 자동 리디렉션 생성 Wagtail은 페이지(및 해당 하위 페이지)가 이동되거나 슬러그가 변경될 때 자동으로 영구 리디렉션을 생성합니다. 이는 시간이 지남에 따라 페이지의 SEO 순위를 유지하는 데 도움이 되며, 북마크를 사용하거나 오래된 링크를 사용할 때 사이트 방문자가 올바른 위치로 이동하는 데 도움이 됩니다. ### 대체 페이지 경로에 대한 리디렉션 생성 `RoutablePageMixin` 을 사용하여 대체 경로가 있는 페이지를 만드는 경우 해당 페이지 유형에 대해 `get_route_paths()` 메서드를 재정의하는 것을 고려할 수 있습니다. 이 목록에 인기 있는 경로 경로를 추가하면 추가 리디렉션이 생성됩니다. 대체 경로로 방문자가 올바른 위치로 이동하는 데 도움이 됩니다. 자세한 내용은 {meth}`~wagtail.models.Page.get_route_paths` 를 참조하십시오. ### 자동 리디렉션 생성 비활성화 Wagtail의 기본 구현은 Wagtail의 내장 URL 생성 메서드를 주로 사용하는 중소 규모 프로젝트(5000페이지 이하)에 가장 적합합니다. 다음 `Page` 메서드에 대한 재정의는 리디렉션을 생성할 때 존중되지만, 해당 재정의에서 특정 페이지 필드를 사용하면 추가 데이터베이스 쿼리가 트리거됩니다. - {meth}`~wagtail.models.Page.get_url_parts()` - {meth}`~wagtail.models.Page.get_route_paths()` 이 기능이 프로젝트에 적합하지 않다고 판단되면 프로젝트 설정에 다음을 추가하여 비활성화할 수 있습니다. ```python WAGTAILREDIRECTS_AUTO_CREATE = False ``` ## 관리 명령 ### `import_redirects` ```sh ./manage.py import_redirects ``` 이 명령은 사용자가 제공한 파일에서 리디렉션을 가져오고 생성합니다. 옵션: | 옵션 | 설명 | | ------------- | ---------------------------------------------------------------------------------------------- | | **src** | 리디렉션을 가져올 파일의 경로입니다. | | **site** | 리디렉션을 저장할 사이트의 **사이트**입니다. | | **permanent** | 가져온 리디렉션이 **영구적**인지(True) 아닌지(False)입니다. 기본값은 True입니다. | | **from** | 리디렉션 시작 값으로 사용할 열 인덱스입니다. | | **to** | 리디렉션 대상 값으로 사용할 열 인덱스입니다. | | **dry_run** | 변경 없이 가져오기를 실행할 수 있습니다. | | **ask** | 생성하기 전에 각 리디렉션을 검사하고 승인할 수 있습니다. | ## `Redirect` 클래스 ```{eval-rst} .. automodule:: wagtail.contrib.redirects.models ``` ```{eval-rst} .. autoclass:: Redirect .. automethod:: add_redirect ``` (redirects_api_endpoint)= ## API 리디렉션을 검색하거나 경로별로 특정 리디렉션을 찾기 위한 API 엔드포인트를 만들 수 있습니다. Wagtail API를 구성하는 방법에 대한 자세한 내용은 [](api_v2_configuration) 문서를 참조하십시오. 리디렉션 엔드포인트를 추가하려면 다음 코드를 추가하십시오. ```python from wagtail.contrib.redirects.api import RedirectsAPIViewSet api_router.register_endpoint('redirects', RedirectsAPIViewSet) ``` 이 구성을 사용하면 리디렉션은 `/api/v2/redirects/` 에서 사용할 수 있습니다. 경로별 특정 리디렉션은 `/api/v2/redirects/find/?html_path=` 로 해결할 수 있으며, 이는 리디렉션 세부 정보가 포함된 `200` 응답 또는 `404` 찾을 수 없음 응답을 반환합니다.