GitLab 문서에서의 리디렉션

페이지를 이동, 이름 변경 또는 삭제하는 경우 리디렉션이 필요합니다. 리디렉션을 추가하면 사용자가 오래된 링크에서 404를 받는 빈도를 줄일 수 있습니다.

리디렉션이 있으면 다음이 보장됩니다:

  • 사용자가 새 페이지를 볼 수 있고 즐겨찾기를 업데이트하거나 삭제할 수 있습니다.
  • 외부 사이트가 리디렉트된 링크를 업데이트할 수 있습니다. 특히 리디렉트된 링크를 확인하는 자동화 기능이 있는 사이트에 해당합니다.
  • 문서 사이트의 전역 내비게이션이 없는 페이지로 연결하지 않습니다.

    전역 내비게이션의 링크는 이미 gitlab-docs 프로젝트에서 테스트되었습니다. 리디렉션이 누락되면 gitlab-docs 프로젝트의 main 브랜치가 손상될 수 있습니다.

페이지를 이동, 이름 변경 또는 삭제하는 병합 요청에 기술 작성자를 할당하세요. 기술 작성자는 질문에 답변하고 변경 내용을 검토하는 데 도움을 줄 수 있습니다.

참고: 페이지의 파일 이름을 변경하면 Google Analytics가 콘텐츠 감사 및 페이지 뷰 추적이 처음부터 다시 시작됩니다. 파일 이름을 변경하려면 먼저 페이지를 편집하여 새 페이지 이름을 가능한 정확하게 설정하세요.

리디렉션 유형

두 가지 유형의 리디렉션이 있습니다:

  • 문서 파일 자체에 추가된 리디렉션은 자체 관리 인스턴스의 /help에서 문서를 보는 사용자를 위한 것입니다. 예를 들어, /help on GitLab.com에서 볼 수 있습니다. 이러한 리디렉션은 문서를 이름을 변경하거나 이동하는 MR에 동시에 추가해야 합니다. 내부 페이지로의 리디렉션은 3개월 후에 만료되며(상대적인 경로로 시작), 외부 페이지로의 리디렉션(https:로 시작)은 1년 후에 만료됩니다.
  • GitLab Pages 리디렉션은 리디렉트 파일이 만료된 후에 자동으로 추가됩니다. 기여자가 수동으로 추가하지 않아야 하며 외부 사이트로의 리디렉션은 9개월 후에 만료됩니다.

만료된 리디렉트 파일은 기술 작성 팀의 월간 작업의 일환으로 clean_redirects Rake 작업에 의해 문서 프로젝트에서 제거됩니다.

이미 존재하는 페이지로 리디렉트

한 저장소의 다른 페이지로 페이지를 리디렉트하려면:

  1. 새 위치로 이동하려는 Markdown 파일에서 다음을 수행하세요:

    • 모든 콘텐츠를 삭제하세요.
    • 이 콘텐츠를 추가하세요:

      ---
      redirect_to: '../newpath/to/file/index.md'
      remove_date: 'YYYY-MM-DD'
      ---
      
      이 문서가 [다른 위치로 이동했습니다](../path/to/file/index.md).
      
      <!-- 이 리디렉트 파일은 <YYYY-MM-DD> 이후에 삭제할 수 있습니다. -->
      <!-- 같은 프로젝트의 다른 문서로 리디렉트되는 리디렉션은 3개월 후에 만료됩니다. -->
      <!-- 다른 프로젝트 또는 사이트의 문서로 리디렉트되는 리디렉션(예: 상대적인 경로가 아니거나 `https:`로 시작)은 1년 후에 만료됩니다. -->
      <!-- 삭제 전에 다음을 확인하세요: https://docs.gitlab.com/ee/development/documentation/redirects.html -->
      
    • ../newpath/to/file/index.md를 새 파일 경로로 교체하세요.
    • YYYY-MM-DD를 템플릿에서 설명한 만료 날짜로 교체하세요.
  2. 변경 내용을 커밋한 후 이전 파일을 가리키는 모든 링크를 검색하고 업데이트하세요:

    • https://gitlab.com/gitlab-com/www-gitlab-com에서 전체 URL을 검색하세요:

      grep -r "docs.gitlab.com/ee/path/to/file.html" .
      
    • https://gitlab.com/gitlab-org/gitlab-docs/-/tree/master/content/_data에서 내비게이션 바 구성 파일에서 .html로 끝나는 경로를 검색하세요:

      grep -r "path/to/file.html" .
      
    • 4개의 내부 프로젝트 중에서 문서와 코드베이스의 링크를 검색하세요. 전체 URL 및 경로만 포함된 링크를 모두 검색하세요. 예를 들어, gitlab 프로젝트의 루트 디렉터리로 이동하여 다음을 실행하세요:

      grep -r "docs.gitlab.com/ee/path/to/file.html" .
      grep -r "path/to/file.html" .
      grep -r "path/to/file.md" .
      grep -r "path/to/file" .
      

      상대적인 링크의 다양한 경우를 시도하여 ../path/to/file 또는 ../file과 같은 경우가 모두 검색될 수 있습니다.

파일의 위치 변경

파일을 한 위치에서 다른 위치로 옮기고 싶다면 해당 파일을 옮기는 대신에 파일을 복사하고, 이전 파일에 리디렉션 코드를 추가합니다.

  1. 새 파일을 생성합니다.
  2. 이전 파일의 내용을 새 파일로 복사합니다.
  3. 이전 파일에서 모든 내용을 삭제합니다.
  4. 이전 파일에 리디렉션 코드를 추가하고 나머지 단계는 이미 존재하는 페이지로 리디렉션 항목을 따릅니다.

코드를 사용하여 리디렉션 추가

리디렉션을 생성하는 데 스크립트를 사용하려면 다음과 같은 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
    

릴리스 이전에 생성한 페이지를 리디렉션하는 경우

새 페이지를 생성하고 18일에 릴리스에 추가되기 전에 이름을 변경하는 경우:

해당 절차를 따르는 대신에, 해당 페이지를 수동으로 redirects.yaml에 추가하도록 기술 작가(Technical Writer)에게 요청하세요.

리디렉션 생성의 예외 사항

일부 경우에는 리디렉션을 추가하는 것을 건너뛸 수 있으며 해당 파일을 삭제할 수 있습니다. 페이지는 이미 탐색에서 제거되었거나(또는 결코 존재하지 않았음) 다음 중 하나가 참이어야 합니다:

  • 해당 페이지가 동일한 릴리스에서 추가되고 제거되었으므로, Self-Managed 릴리스에 포함된 적이 없는 경우.
  • 해당 페이지에는 플레이스홀더 페이지 또는 사용량 통계가 매우 낮은 페이지와 같은 가치있는 콘텐츠가 없습니다.