GitLab 문서에서의 리다이렉션

페이지를 이동, 이름 바꾸기 또는 삭제하는 경우 리다이렉트를 추가해야 합니다. 리다이렉션을 통해 사용자가 문서 사이트를 오래된 링크로 방문했을 때 404 오류를 덜 만날 수 있습니다.

다음을 확인하고 리다이렉트를 추가하여야 합니다:

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

    전역 네비게이션의 링크는 이미 gitlab-docs 프로젝트에서 테스트되었습니다. 리다이렉트가 누락된 경우 gitlab-docs 프로젝트의 main 브랜치가 망가질 수 있습니다.

페이지를 이동, 이름 바꾸기 또는 삭제하는데 도움이 필요할 경우 기술 작가를 지정하십시오. 기술 작가는 모든 질문에 답변하고 변경 내용을 검토할 수 있습니다.

note
페이지 파일 이름을 변경하는 경우 Google Analytics가 내용 감사에서 삭제되며 페이지 뷰가 처음부터 다시 시작됩니다. 파일 이름을 변경하려면 먼저 페이지를 편집하여 새 페이지 이름을 최대한 정확하게 확인할 수 있습니다.

리다이렉션 유형

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

  • 문서 파일 자체에 추가된 리다이렉트: Self-managed 인스턴스의 /help에서 문서를 볼 수 있는 사용자를 위해 추가됩니다. 예를 들어, /help on GitLab.com에서 볼 수 있습니다. 이러한 리다이렉트는 문서 이름 바꾸기나 이동을 하는 MR과 함께 추가되어야 합니다. 내부 페이지로의 리다이렉트는 3개월 후 만료되며, 외부 페이지(HTTPS로 시작)로의 리다이렉트는 1년 후 만료됩니다.
  • GitLab Pages 리다이렉트: 리다이렉트 파일이 만료된 후 자동으로 추가됩니다. 기여자가 직접 추가해서는 안 되며, 9개월 후 만료됩니다. 외부 사이트로의 리다이렉트는 GitLab Pages 리다이렉트에 추가되지 않습니다.

만료된 리다이렉트 파일은 기술 작가 팀의 월별 작업 일환으로 문서 프로젝트에서 제거됩니다.

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

한 리포지터리 내 다른 페이지로 리다이렉트하려면:

  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/main/content/_data에서 네비게이션 바 구성 파일을 검색하여 .html이 들어간 경로를 찾습니다:

    grep -r "path/to/file.html" .
    
  • 네 가지 내부 프로젝트 중 하나에서 문서 및 코드베이스의 링크를 검색합니다. 전체 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에 리다이렉트를 추가할 수 있도록 기술 작가에게 요청하세요.

리다이렉트 생성에 대한 예외

일부 경우에는 리다이렉트를 추가할 필요 없이 파일을 삭제할 수 있습니다. 페이지가 이미 탐색에서 제거되었거나 (또는 전혀 존재하지 않는 경우) 다음 중 하나가 참이어야 합니다:

  • 페이지가 동일한 릴리스에서 추가되고 제거된 경우, 즉, Self-managed 릴리스에 포함된 적이 없는 경우.
  • 페이지에 값 비어 있는 콘텐츠가 포함되어 있지 않거나, 플레이스홀더 페이지나 사용 통계가 극히 낮은 페이지와 같은 가치가 없는 내용을 포함하고 있는 경우.