사이트 이전에 따른 리다이렉션 처리하기

웹사이트를 이전하고서 내 사이트를 검색해 링크를 클릭했더니 느닷없이 페이지를 찾을 수 없다는 오류가 뜬 경험 다들 있으시죠? 이런 오류는 사이트에서 웹페이지의 URL이 변경된 경우에 발생하는데요. 특히 웹사이트를 리뉴얼하거나 이전(migration)한 경우 문제가 됩니다.

“404 페이지를 찾을 수 없습니다”.

이 때 만약 페이지에 적정한 리다이렉션 처리를 해주지 않으면 “페이지를 찾을 수 없습니다.”로 대표되는 404 오류를 만나게 됩니다. 흔히 404 페이지라 불리는 이 페이지는 알다시피 존재하지 않는 페이지를 요청했을 때 서버에서 내보내는 안내 페이지인데요.

웹 검색 과정에서 이런 페이지를 만나면 조금 불쾌한 느낌이 들긴 하죠. 특히 내가 꼭 필요해서 찾아 들어간 사이트에서 이런 오류 페이지가 뜰 때면 말이죠. ㅠㅠ

404 오류 페이지

입장을 바꿔 놓고 만약 누군가 내 웹사이트에 방문했는데 기껏 페이지를 클릭했더니 “페이지를 찾을 수 없습니다.”라고 말하면서 404 오류가 뜨면 어떨까요? 방문객 또한 똑같이 불쾌한 감정이 들지 않을까요?

물론 404 오류는 존재하지 않는 페이지를 호출했을 때 발생하기 때문에 완전히 제거할 수는 없습니다. 사용자가 일부러 존재하지 않는 페이지 URL로 접속했을 때는 오히려 404 오류 페이지를 보여주는 게 옳은 방법이죠.

하지만 404 오류를 꼭 처리해 주어야 하는 경우도 있습니다. 예를 들면 다음과 같은 경우죠.

  • 웹사이트를 리뉴얼하거나 이전한 경우
  • 웹사이트 내에서 특정 페이지의 URL을 변경한 경우
  • 검색엔진에 색인이 잘못 잡힌 경우

이런 경우에는 사용자가 검색엔진을 통해 정상적으로 내 웹사이트에 찾아 들어왔을 때에 404 오류 페이지가 뜨기 때문에 해결해 주는 게 좋습니다.

예를 들어 최근 내가 티스토리 블로그를 쓰다가 워드프레스로 갈아탔다고 해보죠. 이럴 경우, 티스토리 블로그의 URL 체계와 워드프레스의 URL 체계가 다르기 때문에 그대로 놔두면 검색엔진에서 찾아 들어온 방문자는 틀림없이 404 오류 페이지를 만나게 될 것입니다. 불쾌한 경험이 되겠죠. 당연히 처리해 줄 필요가 생깁니다.

페이지 리다이렉션 처리

404 오류를 해결하는 기본적인 방법은 오류가 발생한 페이지를 적정한 페이지로 분기(redirection) 시키는 것입니다. 간단히 말해 예전 URL로 들어온 사용자를 변경된 새 URL로 넘기는 것이죠. 우리가 전화번호를 바꿨을 때 통신사에 요청하여 이전 번호를 새 번호로 연결해 두는 것과 같은 개념이라고 할 수 있죠.

웹표준 상으로는 다양한 리다이렉션 방법들이 있습니다만, 크게는 다음 2가지로 나눌 수 있습니다.

  1. 301 리다이렉션
    영구적(permanent) 리다이렉션. 페이지 주소가 완전히 변경된 경우.
  2. 302 리다이렉션
    임시적(temporary) 리다이렉션. 웹사이트 개편에 따른 공사 페이지나 페이지 유지 보수 등 이유로 인한 일시적인 리다이렉션.

또한 페이지 리다이렉션은 그 처리를 어디서 해주냐에 따라 방법이 나뉘기도 합니다.

  1. 웹서버 단에서 처리
    Apache나 Nginx 등 웹서버에서 리다이렉션 처리를 해 주는 방법.
  2. 워드프레스 단에서 처리
    웹서버는 놔두고 워드프레스에서 자체적으로 리다이렉션을 처리하는 방법.

이 중 리다이렉션을 웹서버 단에서 처리하는 방법이 좀더 정석이긴 하지만, 일반 사용자들이 웹서버의 설정을 건드리는 게 조금 부담이 될 수도 있고 또 어떤 호스팅 환경이냐에 따라 웹서버 설정을 아예 건드리지 못할 경우도 생기기 때문에 워드프레스에서 리다이렉션을 처리하는 게 조금 더 쉬운 방법입니다.

Redirection 플러그인

그럼 워드프레스에서 리다이렉션 처리를 하려면 어떻게 하면 될까요?

워드프레스에서 리다이렉션을 처리하는 다양한 플러그인들이 나와 있습니다. 이 중 필요에 맞는 플러그인을 하나 골라 설치하면 되는데요.

워드프레스 redirect 플러그인 검색

단순하게 포스트나 페이지의 URL 몇 개 변경하는 경우라면 조금 가벼운 플러그인을, 웹사이트 리뉴얼이나 이전(migration)에 따라 대규모 처리가 필요하다면 좀더 강력한 기능을 갖춘 플러그인을 사용하면 되겠죠.

저는 주로 다음 플러그인들을 상황에 맞게 사용하고 있는데요.

이 글의 주제가 웹사이트 이전에 따른 리다이렉션 처리이고, 웹사이트 이전의 경우는 통상 대량의 리다이렉션 처리가 이뤄져야 하기 때문에 여기서는 이 중 Redirection 플러그인의 사용법을 간단히 알아 보겠습니다.

Redirection 플러그인

Redirection 플러그인은 리다이렉션 처리와 관련된 워드프레스 플러그인 중 아마 가장 다양한 기능을 갖춘 플러그인일 것입니다. 다양한 조건에 따른 리다이렉션 처리는 물론 현재 404 오류가 나오는 페이지를 확인할 수도 있고 다른 곳에서 만든 리다이렉션 규칙을 가져오거나 또는 반대로 이 플러그인에서 만든 리다이렉션 설정을 웹서버 설정으로 내보내기 할 수도 있죠.

플러그인 설치

이 플러그인을 설치하면 워드프레스 관리자 대시보드 “도구” 메뉴 아래에 “Redirection” 메뉴가 추가되는데요. 클릭해 보면 다음과 같이 웰컴 화면이 표시될 것입니다.

Welcome to Redirection

이 때 “Start Setup” 버튼을 눌러 셋업을 시작하고 두어 번 더 클릭을 하면 셋업이 완료됩니다.

Redirection 셋업 완료

여기서 “Continue” 버튼을 클릭하면 다음과 같이 Redirection 플러그인의 대시보드가 나오는데요. 사이트의 모든 리다이렉션 처리를 한 곳에서 할 수 있도록 만들어져 있습니다. 로그(log)를 확인하거나 404 오류 페이지를 확인하는 것도 물론이구요.

Redirection 플러그인 메인화면

리다이렉션 추가

Redirection 플러그인에서 리다이렉션을 처리하는 방법은 크게 다음 2가지인데요. 1) 지금 보는 바로 이 메뉴(“Redirections”)에서 직접 리다이렉션 규칙(rules)을 입력하거나 또는 2) “404s” 메뉴에서 404 오류가 뜨는 페이지를 확인하여 해당 페이지에 대한 리다이렉션 URL을 맵핑 해주는 방법이 있습니다.

물론 둘 중 어느 방법을 쓰나 결과는 같습니다.

그럼 리다이렉션을 몇 개 추가해 볼까요? 예를 들어, 티스토리(Tistory) 블로그에서 워드프레스로 이사를 왔다고 해보죠. 티스토리는 통상적으로 숫자로 구성된 URL 아니면 문자로 만들어진 URL 둘 중 하나를 사용하는데요. 여기서는 숫자로 만들어진 URL 체계를 사용했다고 해보죠.

https://mysite.tistory.com/53
→ https://mysite.com/archives/92

티스토리 블로그 /53 포스트를 내 새 워드프레스 블로그의 /archives/92 로 리다이렉션 처리하려면 Redirection 플러그인에서 다음과 같이 규칙을 추가해 주면 됩니다.

새 리다이렉션 추가

만약 티스토리 블로그에서 모바일 페이지 기능을 쓰고 있었다면 포스트 URL 앞에 /m이 추가될 것이기에 이 때는 조금 다르게 리다이렉션 처리를 할 필요가 있습니다. 티스토리는 2개의 서로 다른 URL이 있지만, 워드프레스는 대개 반응형이기 때문에 그 2개의 URL이 하나의 새 URL로 맵핑되어야 하기 때문이죠.

https://mysite.tistory.com/54 
https://mysite.tistory.com/m/54
→ https://mysite.com/posts/17

이 떄는 Redirection 플러그인에서 제공하는 정규식(Regex) 옵션을 사용하면 되는데요. 다음과 같이 “Regex” 옵션을 체크하고

Regex 옵션 추가

“Source URL”을 입력란에 정규표현식을 사용하여 URL을 표현하면 됩니다.

정규식으로 표현한 리다이렉션 추가

정규표현식에 대한 자세한 설명은 이 글에서는 하지 않습니다. 다만 좀더 많은 양의 리다이렉션 처리를 좀더 간단하게 하려면 정규표현식을 이용한 방법이 훨씬 효과적이라는 점만 말씀 드립니다.

웹서버 리다이렉션 내보내기

이렇게 해서 2개의 리다이렉션 규칙을 추가해 보았는데요.

추가된 리다이렉션 규칙

Redirection 플러그인에는 이렇게 추가한 리다이렉션 규칙들을 외부로 내보내는 기능도 제공합니다.

Redirection 플러그인 Import/Export

이 Export 기능은 JSON, CSV, Apache(.htaccess), Nignx 등 다양한 형식으로 내보낼 수 있는데요. 예를 들면, 앞서 만든 리다이렉션 규칙을 다음과 같이 Apache .htaccess 파일로 만들어 내보낼 수도 있습니다.

리다이렉션 규칙을 Apache .htaccess 파일로 내보내기

이렇게 아파치 .htaccess 파일로 내보내서 워드프레스 루트 디렉터리에 있는 .htaccess 파일에 추가해 주면 이제 웹서버(Apache) 상에서 리다이렉션 처리가 이루어지게 됩니다. (물론 이렇게까지 했다면 이제 더이상 Redirection 플러그인은 필요가 없으니 조용해 삭제해도 되겠죠?)

만약 웹서버로 Apache가 아닌 Nginx를 사용한다면, Nginx 설정 파일로 내려받아 Nginx에서 같은 작업을 해주면 될 것이구요.

굳이 웹서버쪽 설정으로 갈아탈 필요를 못느낀다면 그냥 Redirection 플러그인을 계속 설치한 채로 두면 됩니다.

이렇게 리다이렉션 처리를 해주고 나면 이제 404 오류로 잡히던 페이지들이 정상적으로 사용자를 찾아갈 수 있게 되겠죠. 내 웹사이트를 방문한 방문자는 물론 갑자기 목표 지점을 잃어 어쩔 줄 몰라 방황하던 검색엔진에게도 좋은 선물이 될 테구요. 내 웹사이트 SEO 점수에도 보탬이 됨은 물론이겠죠. 😀

0 thoughts on “사이트 이전에 따른 리다이렉션 처리하기”