서버 수정 권한이 없을 때 Cloudflare를 이용해 301리디렉션을 하는 방법

wordPress

여기서는 301리디렉션을 하는 방법을 알아보겠습니다. 특히 자신의 블로그를 운영하는 서버를 수정할 권한이 없는 경우 네임서버인 Cloudflare를 이용해서 301리디렉션을 하는 방법에 대해서 정리합니다.


301리디렉션을 설정하는 방법 중 SEO에 긍정적인 것

301리디렉션을 해야하는 경우

도메인을 변경하거나 url의 구조를 변경하는 경우 또는 중복콘텐츠를 제거하거나 페이지의 삭제 및 병합한 경우 검색엔진에게 이를 명확히 알려야합니다. 301리디렉션은 검색 엔진에게 웹페이지의 영구적인 이동을 명확하게 알립니다. 이는 기존 페이지의 검색 엔진 순위와 가치를 새로운 페이지로 전달할 수 있어 SEO(검색엔진최적화)에 아주 긍정적인 영향을 줍니다.


301리디렉션을 설정하는 방법 중 SEO에 긍적적인 순서

SEO에 긍정적인 순서대로 정리해보면 다음과 같습니다.

1. 클라우드서비스 및 CDN설정을 이용한다. Cloudflare같은 CDN에서 301리디렉션을 구현할 수 있습니다. 단, 개수제한이 있습니다. 와일드카드를 사용할 수 있습니다.

2. 웹사이트관리도구를 이용한다. cPane, WordPress, Ghost와 같은 CMS를 사용할 경우 설정이나 플러그인을 이용해 301리디렉션을 간편하게 할 수 있습니다.

3. 웹서버의 파일을 수정한다. Apache의 .htacess파일이나 httpd.conf파일이나 Nginx의 nginx.conf파일 등을 수정해서 서버수준의 리디렉션을 처리할 수 있습니다. 이 방법은 서버 수준에서 직접적으로 리디렉션을 처리하는 것이라 복잡한 리디렉션 규칙도 정밀하게 설정할 수 있습니다. 

4. 프로그래밍 언어를 이용한다. 자바스크립트나 캐노니컬태그 등을 사용해서 다양한 리디렉션을 구현 할 수 있습니다. 하지만 이 방식은 주로 window.location속성을 변경해 수행되어 실제 301리디렉션(서버 사이드 리디렉션)과는 다른 방식입니다. 이 방식은 사용자의 브라우저가 이미 페이지를 로드한 후에 실행되는 방식이라 검색엔진이 페이지의 이동을 '영구적인 변경'으로 인식하지 않을 수 있어 SEO측면에서 부정적일 수 있습니다.


웹서버를 수정할 수 있는 경우

만약, apache나 nginx서버같이 서버의 설정을 수정할 수 있는 경우는 이 서버를 계속 유지하며 301리디렉션을 6개월이상 유지합니다. 그리고 만약 아파치서버나 엔진엑스 서버를 유료로 사용중이었다면 그 기간동안 비용을 계속 내야합니다. 이 비용을 내기 싫다면 2가지 생각을 해볼 수 있습니다. 

하나는 무료나 저렴하게 서버를 운영할 수 있는 곳으로 옮겨서 그곳에서 301리디렉션을 설정해서 6개월 이상 유지하는 것입니다. 만약, 무료나 저렴하게 서버를 운영하는 것에 관심이 있다면 AWS(Amazon Web Service), GCP(Google Cloud platform), Microsoft Azure, OCI(Oracle Cloud Infrastructure)의 무료티어를 살펴봐주세요. 또는 Github Pages나 Heroku에서 웹서버를 운영할 수도 있습니다. 이 곳으로 서버와 연결된 도메인을 옮긴 후 301리디렉션을 설정하는 것입니다.

두번째는 cloudflare같은 네임서버에서 301리디렉션을 설정하고 아파치나 엔진엑스 서버는 해지하는 것입니다. 클라우드플레어에서 301리디렉션을 할 경우 네임서버에서 리디렉션이 일어나 아파치서버에 전달되질 않습니다.


티스토리 처럼 웹서버를 수정할 수 없는 경우 301리디렉션 설정하기

웹사이트의 주소를 다른 사이트로 옮길 때, 특히 서버 수정 권한이 없는 경우(예: 티스토리, 네이버 블로그 등)도 301 리디렉션을 설정하는 것이 SEO에 유리합니다. 그런데 이런 CMS에서는 서버 측이나 루트 디렉토리에 접근할 수 없어 301 리디렉션 설정을 할 수 없습니다. 티스토리나 네이버 블로그에서는 보안 및 유지관리를 위한 것인지 서버의 설정을 변경할 수 없습니다. 

인터넷을 검색해보면 그 대안으로 자바스크립트로 리디렉션을 하거나 캐노니컬태그(canonical Tag)를 사용하곤 합니다. 앞서 말했듯이 이 방식은 seo에 부정적일 수 있습니다.

이 글에서는 도메인의 네임서버측면에서 301리디렉션을 하는 방법을 생각해보겠습니다. 즉, 이런 경우에, Cloudflare와 같은 서비스를 이용해 네임서버 수준에서 301 리디렉션을 설정할 수 있습니다. 

단, Cloudflare에서는 무료로 네임서버 사용 및 301 리디렉션 설정이 가능하지만, 설정할 수 있는 규칙의 개수에는 제한이 있습니다. 구체적으로 무료모드에서는 Page Rule에서 3개, (단일) 리디렉션 규칙에서 10개, (대량) 리디렉션 규칙에서 20개를 설정할 수 있습니다. 그보다 많은 경우 /*, /$1 같은 와일드카드를 사용하거나 돈을 내야합니다.

Cloudflare의 Bulk redirects

 FreeProBusinessEnterprise
AvailabilityYesYesYesYes
Bulk Redirect Rules15151550
Bulk Redirect Lists55525
URL redirects across lists2050050010,000


Cloudflare의 Single Redirects

 FreeProBusinessEnterprise
AvailabilityYesYesYesYes
Number of rules102550125
Regex supportNoNoYesYes


Cloudflare의 Page Rules

 FreeProBusinessEnterprise
AvailabilityYesYesYesYes
Number of rules32050125

 

만약, 원본 웹사이트의 포스트의 개수가 33개보다 적은 경우는 각 게시물의 원본과 목적지를 301리디렉션을 설정하면 됩니다.

와일드카드를 이용하려면 원본url과 대상url에 규칙성이 있어야합니다. 이동하려는 목적지 웹사이트의 각 포스트의 제목의 규칙성을 잘 설정해서 와일드카드로 간단히 리디렉션을 할 수 있게하면 좋습니다. 예를들어 워드프레스로 이동한다면 워드프레스의 포스트 url설정 부분을 티스토리나 네이버블로그와 같은 패턴으로 설정해주는 것이 좋겠습니다.

 

Cloudflare를 통한 301 리디렉션 설정 방법

클라우드플레어를 네임서버로 사용합니다. 만약, 네밍서버로 다른 것을 사용하고 있다면 클라우드플레어로 네임서버를 이동해야합니다.

이 글에서는 몇 가지 가정을 하겠습니다.
원본 도메인의 글들을 대상 도메인의 글들로 옮깁니다.
각 포스트 글들은 원본 url에서 대상 url로 301리디렉션을 설정해야합니다.
이미 원본 도메인의 네임서버를 클라우드플레어에서 사용하고 있다고 가정하겠습니다.

 

Cloudflare를 네임서버로 사용하면, 몇 가지 간단한 단계를 통해 301 리디렉션을 설정할 수 있습니다.


1단계: Cloudflare에 접속하여 원본 도메인 선택 후 DNS 확인

작업하려는 도메인의 DNS 레코드에서 프록시가 활성화되었는지 확인합니다. 프록시가 비활성화된 경우, 활성화하여 리디렉션 설정이 제대로 작동하도록 합니다.

cloudflare에서 도메인 선택

cloudflare에서 DNS record 확인


2단계: 리디렉션 방법 선택

PageRule, (single) redirection, (bulk) redirection 중에서 선택합니다. PageRule은 무료로 3개 사용 가능하며, 리디렉션은 주로 URL 변경에 사용됩니다. 가능하다면, PageRule은 다른 용도로 남겨두고 bulk 또는 single redirection을 사용하는 것이 좋아보입니다.

cloudflare의 redirection 방법 3가지


3단계: 리디렉션 설정(Single Redirects)

리디렉션할 포스트가 적은 경우, 각각의 원본 URL과 대상 URL을 설정합니다. 포스트 수가 많을 경우 와일드카드를 사용하여 대량의 리디렉션을 설정할 수 있습니다.

리디렉션할 포스트의 수가 많지 않은 경우, 각 원본 URL과 대상 URL을 개별적으로 설정하는 것으로 충분합니다. 그러나 포스트의 수가 많을 때는 와일드카드를 활용하는 방식이 효과적입니다. 이때, 대상 웹사이트의 포스트 제목 규칙을 고려하여 설정해야 합니다.

예를 들어, https://원본url-1/*를 원본 URL로, https://대상url-1/$1을 대상 URL로 설정하면, 와일드카드 *$1을 사용해 원본url-1/ 뒤에 오는 모든 경로를 대상url-1/ 뒤에 동일하게 매핑하여 리디렉션합니다. 이 방식을 사용하면, 예를 들어 https://원본url-1/abc라는 포스트는 https://대상url-1/abc로 리디렉션됩니다.


구체적으로 티스토리에서 옮길 경우

https://origin.tistory.com/20https://destine.com/20 으로 https://origin.tistory.com/33https://target.com/33 으로 가는 패턴으로 설정하려면?

SourceURL: https://origin.tistory.com/*
TargetURL: https://target.com/$1

이렇게 설정하면 되고.

 

네이버블로그에서 옮길경우

https://blog.naver.com/origin/223342965064https://target.com/223342965064 으로 https://blog.naver.com/origin/223342965080https://target.com/223342965080 으로 가는 패턴으로 설정하려면?

SourceURL: https://blog.naver.com/origin/*
TargetURL: https://target.com/$1

이렇게 설정하면 되며

 

맞춤도메인(origin.com)을 사용하고 있었다면

https://origin.com/20https://destine.com/20 으로 https://origin.com/33https://target.com/33 으로 가는 패턴으로 설정하려면?

SourceURL: https://origin.tistory.com/* 
TargetURL: https://target.com/$1

이렇게 설정하면 됩니다.

 

단, 이렇게 와일드카드를 이용해서 규칙을 설정한 경우에 옮긴 후의 포스트의 url을 위 패턴에 맞게 설정해줘야한다. 그러니까 https://origin.tistory.com/20의포스트를 https://destine.com/20의 포스트로 옮기도록 이 규칙에 맞도록 주소를 잘 확정해줘야만합니다.

 

만약 더 다양한 리디렉션 옵션을 알고 싶다면 cloudflare의 문저를 참고하세요.

https://developers.cloudflare.com/rules/url-forwarding/


이러한 설정을 적용할 때는 대상 URL의 포스트 주소 규칙을 고려해야 합니다. 이를 통해 제한된 수의 리디렉션 규칙으로도 다수의 포스트를 효과적으로 301 리디렉션할 수 있게 됩니다.


리디렉션이 정상적으로 작동하는지 확인하고자 할 때는, 웹 브라우저에서 https://원본url-1을 입력해 보세요. 이동한 https://대상url-1 페이지가 나타난다면, 설정이 성공적으로 적용된 것입니다. 정확한 리디렉션 과정을 보고 싶다면, 웹 브라우저의 '개발자 도구'를 열어 Network 탭을 확인하십시오. 여기서 요청의 Header 섹션을 보면 리디렉션이 어떻게 이루어지는지 상세히 파악할 수 있습니다.

이렇게 설정하면, 원본 URL을 방문할 때 자동으로 대상 URL로 리디렉션됩니다.

리디렉션 설정하는 방법1 리디렉션 설정하는 방법2

리디렉션 설정하는 방법3 리디렉션 설정하는 방법4



대량 리디렉션 설정하는 방법(Bulk Redirects)

대량 리디렉션을 설정하는 방법도 간단히 알아보겠습니다.

만약 기록해야할 내용이 많다면 csv파일을 하나 만들겠습니다. 많지 않다면 csv파일을 만들지 않아도 됩니다.

csv파일을 하나 만듭니다.

<SOURCE_URL>,<TARGET_URL>[,<STATUS_CODE>,<PRESERVE_QUERY_STRING>,<INCLUDE_SUBDOMAINS>,<SUBPATH_MATCHING>,<PRESERVE_PATH_SUFFIX>]

 

위와 같은 포맷을 따라야합니다.

예를들어서 원본url-1을 대상url-1로, 원본url-2를 대상url-2로 301리디렉션시킬 때 csv파일은 어떻게 만들어야할까요?

요구사항에 맞춰서 CSV 파일을 만들려면, 각 URL 리디렉션 규칙을 한 줄에 하나씩 적어야 합니다. 원본 URL과 대상 URL만 필수 값이고, 다른 값들은 선택적입니다. 기본적으로 <STATUS_CODE>는 301로 설정되고, 나머지 불리언 매개변수들은 FALSE로 설정됩니다.

너의 경우에는 원본url-1을 대상url-1로, 그리고 원본url-2를 대상url-2로 301 리디렉션시키고 싶다고 했으니, 다음과 같이 CSV 파일을 작성할 수 있습니다.

원본url-1,대상url-1
원본url-2,대상url-2

여기서 <SOURCE_URL>원본url-1원본url-2이고, <TARGET_URL>대상url-1대상url-2입니다. <STATUS_CODE>에 대한 값을 명시적으로 입력하지 않았기 때문에, 기본값인 301이 사용될 거야. 나머지 불리언 매개변수들도 기본값인 FALSE를 사용할 거고, 이는 추가적인 옵션이 필요하지 않다는 것을 의미합니다. 이렇게 간단하게 두 줄을 작성하면 네가 원하는 리디렉션 규칙을 CSV 파일로 만들 수 있습니다.

즉, 엑셀에서 2개의 열에 각각 원본url과 대상url을 입력해서 여러 개의 행을 입력해서 csv포맷으로 저장하면 됩니다.

 

redirect list를 정합니다.

Bulk redirects-1 Bulk redirects-2


앞에서 만든 csv파일을 클라우드플레어에 업로드하거나 'manually add...'를 클릭하고 해당하는 url을 하나하나 입력하세요.

Bulk redirects-3-1 Bulk redirects-3-2

 

redirect 리스트가 제대로 인식되었는지 확인하세요.

Bulk redirects-4 Bulk redirects-5 Bulk redirects-6

 

이런식으로 rule list와 rule을 몇 개 만든다. 그리고 점6개 아이콘을 클릭해서 움직여 리디렉션의 순서를 설정한 다음에 Enable합니다. 

Bulk redirects-7 Bulk redirects-8


 

리스트에 있는 url을 웹브라우저에서 테스트해봐서 대상url로 잘 이동하는지 확인하면 끝납니다. 만약 잘 이동하지 않는 것이 있다면 확인하고 오타 등을 수정해줍니다.

 

이 블로그의 인기 게시물

위니아 딤채 소형 김치냉장고 AS후기 (WDS10CERPS 수리비용과 수리과정)

1개의 영어단어로 된 색상 이름들 (html에 사용가능한 색상키워드)

맥미니에 연결한 새로운 모니터에서 발생한 HDR동영상의 색상 문제 해결기