현재 운영중인 jinukbaek.com 홈페이지는 블로그 페이지에 들어오기 위해 "jinukbaek.com/blog"까지 입력을 해야한다. 하지만 jinukbaek.com 도메인으로는 현재 블로그 밖에 운영하고 있지 않기 때문에 자동으로 이동(리다이렉션, Redirection)되게 해두었다. 하지만 문제는 Javascript로 이동하게 해두었다는 점에 있었다.
웹 브라우져는 "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내용 이외의 것도 검색이 되기 시작하였다. 이것으로써 서버운영하면서 있었던 문제 하나를 해결하였다.
참고자료
- 웹 크롤러, http://ko.wikipedia.org/wiki/%EC%9B%B9_%ED%81%AC%EB%A1%A4%EB%9F%AC ↩
- 네이버 도움말, https://help.naver.com/ops/step2/mail.nhn?catg=547&upCatg=264 ↩
- 다음 검색 등록, https://register.search.daum.net/index.daum ↩
- 한세희, "네이버 검색에 잘 걸리는 웹페이지 만들기 비법은?", 전자신문, 2013년 12월 20일 ↩