GitLab 문서의 리디렉션
GitLab v19.1페이지를 이동, 이름 변경, 또는 삭제할 때는 반드시 리디렉션을 추가해야 합니다. 다음을 보장하기 위해 리디렉션을 추가하세요: 사용자가 새 페이지를 확인하고 북마크를 업데이트하거나 삭제할 수 있습니다. 외부 사이트, 특히 리디렉션된 링크를 확인하는 자동화 기능이 있는 사이트가 링크를 업데이트할 수 있습니다.
페이지를 이동, 이름 변경, 또는 삭제할 때는 반드시 리디렉션을 추가해야 합니다. 리디렉션은 사용자가 오래된 링크를 통해 문서 사이트를 방문할 때 404 오류가 발생하는 횟수를 줄여줍니다.
다음을 보장하기 위해 리디렉션을 추가하세요:
-
사용자가 새 페이지를 확인하고 북마크를 업데이트하거나 삭제할 수 있습니다.
-
외부 사이트, 특히 리디렉션된 링크를 확인하는 자동화 기능이 있는 사이트가 링크를 업데이트할 수 있습니다.
-
번역된 문서가 항상 영어 콘텐츠의 기존 파일로 폴백(fallback)될 수 있습니다.
-
AI 크롤러가 해당 주제의 관련 컨텍스트를 계속 찾을 수 있습니다.
-
문서 사이트의 전역 내비게이션이 없어진 페이지로 연결되지 않습니다.
전역 내비게이션의 링크는 이미 docs-gitlab-com 프로젝트에서 테스트됩니다.
페이지를 이동, 이름 변경, 삭제하는 머지 리퀘스트에는 반드시 기술 작가(Technical Writer)를 지정하세요. 기술 작가는 질문에 답하고 변경 사항을 검토할 수 있습니다.
다른 리디렉션으로 리디렉션하지 마세요.
페이지의 파일명을 변경하면 콘텐츠 감사에서 Google Analytics 데이터가 제거되고 페이지 조회수가 처음부터 다시 시작됩니다. 파일명을 변경하려면 먼저 페이지를 편집하여 새 페이지 이름이 최대한 정확한지 확인하세요.
리디렉션 유형#
리디렉션에는 두 가지 유형이 있습니다:
-
문서 파일 자체에 추가되는 리디렉션: GitLab Self-Managed 인스턴스의
/help에서 문서를 보는 사용자를 위한 것입니다. 예: GitLab.com의/help. 이 리디렉션은 문서를 이름 변경하거나 이동하는 동일한 MR에 추가해야 합니다. 내부 페이지로의 리디렉션은 3개월 후에 만료되고, 외부 페이지(URL이https:로 시작하는 경우)로의 리디렉션은 1년 후에 만료됩니다. -
GitLab Pages 리디렉션: 리디렉션 파일이 만료된 후 자동으로 추가됩니다. 기여자가 수동으로 추가해서는 안 되며, 9개월 후에 만료됩니다. 외부 사이트를 가리키는 리디렉션은 GitLab Pages 리디렉션에 추가되지 않습니다.
만료된 리디렉션 파일은 기술 작성팀의 월별 작업의 일환으로 문서 프로젝트에서 제거됩니다.
이미 존재하는 페이지로 리디렉션하기#
같은 리포지터리의 다른 페이지로 페이지를 리디렉션하려면:
-
새 위치로 리디렉션하려는 Markdown 파일에서:
모든 콘텐츠를 삭제합니다.
-
다음 콘텐츠를 추가합니다:
---
redirect_to: '../newpath/to/file/_index.md'
remove_date: 'YYYY-MM-DD'
---
<!-- markdownlint-disable -->
This document was moved to [another location](../newpath/to/file/_index.md).
<!-- This redirect file can be deleted after . -->
<!-- Redirects that point to other docs in the same project expire in three months. -->
<!-- Redirects that point to docs in a different project or site (for example, link is not relative and starts with `https:`) expire in one year. -->
<!-- Before deletion, see: https://docs.gitlab.com/development/documentation/redirects -->
-
../newpath/to/file/index.md의 두 인스턴스 모두를 새 파일 경로로 교체합니다. -
YYYY-MM-DD의 두 인스턴스 모두를 템플릿에 설명된 대로 만료 날짜로 교체합니다. -
페이지에 다른 페이지에서 사용되지 않는 이미지가 있으면 삭제합니다.
다른 리포지터리의 링크 업데이트#
변경 사항이 커밋된 후, 이전 파일에 링크가 걸려 있을 수 있는 다른 리포지터리를 검색하고 업데이트하세요:
- https://gitlab.com/gitlab-com/www-gitlab-com에서 전체 URL을 검색합니다:
grep -r "docs.gitlab.com/path/to/file" .
-
https://gitlab.com/gitlab-org/technical-writing/docs-gitlab-com/-/blob/main/data/en-us/navigation.yaml에서 경로를 검색하고 항목을 제거합니다.
-
모든 문서 프로젝트에서 문서와 코드베이스의 링크를 검색합니다. 전체 URL과 경로만 포함한 것 등 모든 변형을 검색하세요. 예를 들어,
gitlab프로젝트의 루트 디렉터리로 이동하여 다음을 실행하세요:
grep -r "docs.gitlab.com/path/to/file" .
grep -r "path/to/file" .
grep -r "path/to/file.md" .
grep -r "path/to/file" .
모든 경우를 찾으려면 ../path/to/file 또는 ../file과 같은 상대 링크 변형을 시도해야 할 수도 있습니다.
- https://gitlab.com/gitlab-org/customers-gitlab-com에서 전체 URL을 검색합니다:
grep -r "docs.gitlab.com/path/to/file" .
파일 위치 이동#
파일을 한 위치에서 다른 위치로 이동하려면, 파일을 실제로 이동하지 않습니다. 대신 파일을 복제하고 이전 파일에 리디렉션 코드를 추가합니다.
-
새 파일을 만듭니다.
-
이전 파일의 내용을 새 파일에 복사합니다.
-
이전 파일에서 모든 콘텐츠를 삭제합니다.
-
이전 파일에 리디렉션 코드를 추가하고 이미 존재하는 페이지로 리디렉션하기 항목의 나머지 단계를 따릅니다.
코드를 사용하여 리디렉션 추가#
스크립트를 사용하여 리디렉션을 만들려면:
다음 Rake 작업을 실행하여 이전 문서 파일에 리디렉션 코드를 추가합니다. 첫 번째 인수는 이전 파일의 경로이고, 두 번째 인수는 새 파일의 경로입니다:
- 같은 프로젝트의 페이지로 리디렉션하려면 상대 경로와
.md확장자를 사용합니다. 이전 경로와 새 경로 모두 같은 위치에서 시작합니다. 다음 예시에서 두 경로는 모두doc/에 상대적입니다:
bundle exec rake "gitlab:docs:redirect[doc/user/search/old_file.md, doc/api/new_file.md]"
- 다른 프로젝트나 사이트의 페이지로 리디렉션하려면 전체 URL(
https://포함)을 사용합니다:
bundle exec rake "gitlab:docs:redirect[doc/user/search/old_file.md, https://example.com]"
- 또는 인수를 생략하고 값을 입력하라는 프롬프트를 받을 수 있습니다:
bundle exec rake gitlab:docs:redirect
리디렉션 생성의 예외 사항#
일부 경우에는 리디렉션 추가를 건너뛰고 파일을 삭제하기만 해도 됩니다. 페이지가 이미 내비게이션에서 제거되었거나(또는 존재한 적이 없어야 하며), 다음 중 하나가 해당되어야 합니다:
-
페이지가 동일한 릴리즈에서 추가되고 제거되어 GitLab Self-Managed 릴리즈에 포함된 적이 없는 경우.
-
페이지에 유용한 콘텐츠가 없는 경우, 예를 들어 플레이스홀더 페이지이거나 사용 통계가 매우 낮은 페이지인 경우.
문제 해결#
이 섹션에는 문서 리디렉션에서 발생할 수 있는 문제에 대한 해결책이 포함되어 있습니다.
오류: 페이지 이동 후 중복 콘텐츠 경로#
파일을 같은 이름의 디렉터리로 이동하면 Hugo에서 Duplicate content path 오류가 발생할 수 있습니다.
예시:
-
소스 파일:
doc/development/testing.md(새 리디렉션이 됨) -
타깃 파일:
doc/development/testing/_index.md
WARN Duplicate content path: "/development/testing" file: "gitlab/doc/development/testing.md"
panic: Duplicate content path: "/development/testing" file: "gitlab/doc/development/testing.md"
이 오류는 리디렉션 파일과 새 파일 모두 동일한 URL 경로에 게시해야 하기 때문에 발생합니다. 이 예시에서 두 파일 모두 https://docs.gitlab.com/testing/에 게시되어야 하는데, 이는 유효하지 않습니다.
이 문제를 방지하려면 소스 페이지의 콘텐츠를 검토하고 새 파일이나 디렉터리에 대한 대체 이름을 선택하세요. 다른 디렉터리 이름을 선택하면 파일명으로 _index.md를 사용할 수 있습니다. 예시:
-
소스 파일:
doc/development/testing.md(새 리디렉션이 됨) -
타깃 파일:
doc/development/backend_testing/_index.md
오류: 페이지 이동 후 File is invalidly renamed!#
이 오류는 Duplicate content path Hugo 오류와 같은 이유로 CI/CD 파이프라인에서 발생할 수 있습니다. 이 오류의 해결 방법은 Hugo 오류의 경우와 동일합니다.