1월 022014
 

현재 운영중인 jinukbaek.com 홈페이지는 블로그 페이지에 들어오기 위해 "jinukbaek.com/blog"까지 입력을 해야한다. 하지만 jinukbaek.com 도메인으로는 현재 블로그 밖에 운영하고 있지 않기 때문에 자동으로 이동(리다이렉션, Redirection)되게 해두었다. 하지만 문제는 Javascript로 이동하게 해두었다는 점에 있었다.

Redirection

Javascript와 301리다이렉션과 차이는 빨간색부분이지만 웹브라우져는 200의 경우 html코드를 실행을 해야하기 때문에 반응 속도는 좀 더 늦다.

웹 브라우져는 "http://jinukbaek.com"으로 접속을 먼저 하게 되면 서버는 특별한 설정을 하지 않았다는 전제하에 index.html을 찾아서 그림과 같이 "200 OK"라는 메시지와 index.html의 내용을 같이 보내게 된다. 이 파일을 웹 브라우져는 읽어 들여서 실행을 하게 된다. 요는 불러와서 자바스크립트를 따로 실행해야한다는 점에 있다. 비록 필자가 "jinukbaek.com/blog"로 이동하라는 코드를 넣어놨다 하더라도 웹 브라우져 입장에서는 html파일의 내용이 무엇일지 예측할 수 없기 때문에 일단 실행을 해야한다. 하지만 301과 같이 상태코드(300대의 상태 코드는 페이지 이동을 나타냄)를 이용해서 리다이렉션을 하기 때문에 딱히 내용을 확인하지 않아도 바로 이동하도록 하게 할 수 있다. 그래서 속도 향상과 검색봇이 크롤링1을 제대로 하게 된다. 제일 좋은 것은 "jinukbaek.com/blog" 주소를 블로그로 쓰지 않고 "jinukbaek.com"에 바로 블로그가 연결되도록 하는 것이 좋지만, 추후에 다른 서비스 확장도 고려하고 있는 필자의 입장에서는 어쩔 수 없는 선택이였다.

구글의 경우에는 자바스크립트까지 분석해서 크롤링하는지 모르겠지만 내용도 문제없이 검색이 되었었는데 네이버는 상황이 다른 듯 했다. 네이버 검색 신청을 하고 키워드로 검색해도 결과가 안나와서 "블로그 RSS 등록2" 을 찾아서 신청해야 했다. 다음의 경우에도 "블로그 RSS 등록3"을 통해서 검색이 되도록 하였다. 그렇게 검색이 안되는 문제를 해결하였다. 필자가 블로그 사이트를 만든지 시간이 꽤 지났기 때문에 Javascript를 통해서 리다이렉션을 했었는지 완전 잊고 있었다. 그런데 그렇게 했는지 다시 확인하게 된 것은 한 신문기사 때문이였다.

(9) JavaScript나 flash로 redirect 하지 말 것4

필자가 설마하고 확인을 해 보았더니 정말로 자바스크립트로 블로그페이지로 이동되게 되어 있었다. 봇이 자바스크립트까지 해석하지는 않을태니 당연히 크롤링이 안됬고 따라서 검색이 안되는 것이었다. 아마 "index.html" 파일 만들고 코드 몇 줄 입력하면 되기 때문에 그렇게 했을 것이다. 자바스크립트 리다이렉션은 서버 재시작이나 설정을 바꾼다거나 하는 작업 없이 아래 코드를 입력하면 된다.

<script>
	window.location = "/blog";
</script>

이참에 문제있는 부분도 수정할겸 아파치 서버 설정을 바꾸어 "http://jinukbaek.com"으로 접속하면 301 코드를 리턴하여 이동하도록 수정하였다. 수정한 환경설정 파일 경로는 "/etc/apache2/sites-enable/000-default.conf"이며 사용자 환경에 따라서 경로는 달라질 수도 있다. 수정은 환경설정 파일의 상황에 따라서 달라지는데 보통 VirtualHost 태그 사이에 넣으면 된다. 수정하고 나서 아파치 서버를 제시작(sudo service apache2 restart) 하는 것을 잊지 말자.

RedirectMatch 301 ^/$ /blog 
# RedirectMatch : 요청 주소가 해당하는 정규표현식을 만족할 경우 리다이렉션
# 301 : 리다이렉션시 http응답 코드
# ^/$ : 시작시 "/"로 시작하고 끝나는 문자열에 대해서. (즉 "/"로 요청이 왔을 때만)
# /blog : "/blog" 경로로 리다이렉션

리다이렉션시 웹브라우져가 자바스크립트 파싱하고 실행하는 상황이 생략되었기 때문에 초기 접속 속도가 약간 향상 되었으며 네이버에서 RSS내용 이외의 것도 검색이 되기 시작하였다. 이것으로써 서버운영하면서 있었던 문제 하나를 해결하였다.

참고자료

  1. 웹 크롤러, http://ko.wikipedia.org/wiki/%EC%9B%B9_%ED%81%AC%EB%A1%A4%EB%9F%AC
  2. 네이버 도움말, https://help.naver.com/ops/step2/mail.nhn?catg=547&upCatg=264
  3. 다음 검색 등록, https://register.search.daum.net/index.daum
  4. 한세희, "네이버 검색에 잘 걸리는 웹페이지 만들기 비법은?", 전자신문, 2013년 12월 20일