얼마 전에 만든 TraceWatch 통계 플러그인TraceWatch의 통계치를 태터툴즈의 스킨에 삽입할 수 있는 플러그인이다. 이 플러그인에는 현재 읽고 있는 페이지가 몇 번 노출되었는지를 표시하는 페이지 뷰에 대한 치환자가 있다.

그러나 이 치환자는 페이지의 노출 횟수를 정확하게 반영하지 못한다. 그 이유는 TraceWatch 통계 플러그인에서 설명한 것처럼 URL이 다르면 는 서로 다른 페이지로 간주하기 때문이다. 이 문제는 https://offree.net/처럼 URL에 블로그 페이지가 포함되어 있지 않으면 더 심각해진다. 조금 전에 올린 글이라도 TraceWatch의 누적된 결과 값을 가져오기 때문에 조회 수가 아주 높게 나타나며, 이러한 현상은 블로그를 운영하는 시간이 길어지면 질수록 증가하기 때문이다.

따라서 이러한 문제를 수정하기 위해 https://offree.net/과 같은 URL이 입력되면 자동으로 최근에 올라온 글(https://offree.net/477)로 방향 전환하도록 태터툴즈의 index.php 파일을 수정했다. 이 방법을 이용하면 같은 글이 다른 URL을 가질 가능성이 그만큼 줄어든다.

나처럼 블로그 당 하나의 글만 올라오도록 설정한 상태라면 페이지를 이동하는 것과 글을 이동하는 것이 정확히 일치해야 한다. 그러나 https://offree.net/로 접속하면 페이지는 /?page=1처럼 표시되며, https://offree.net/477처럼 연결하면 페이지는 /476처럼 표시된다.

그러나 이 패치를 적용하면 항상 페이지가 /476처럼 나타나기 때문이다. 다만, 이 패치는 내가 사용하고 있는 환경을 기준으로 한 것이기 때문에 모든 사람에게 동작하지는 않는다는 점이다. 아울러 환경이 다른 사용자를 위해 패치를 다시 작성할 생각도 없다는 점이다. 따라서 이 패치는 내가 사용하는 환경과 같은 경우에만 적용하기 바란다.

블로그 당 글의 수: 하나
블로그 참조: 숫자
사용 환경:      단일 사용자

패치하는 방법은 간단하다. 좋아하는 편집기로 /blog/index.php 파일을 열고 마지막의 print $view;를 다음처럼 변경하면 된다.

//fireEvent('OBStartSession');
//print $view;
//fireEvent('OBEndSession');
header("Location: ".불blogURL."/".불entry['id']);

GZip 압축 전송 플러그인을 설치하지 않았으면 print $view;만 주석 처리하면 되며, 플러그인을 적용한 경우에는 fireEvent();까지 주석처리해야 한다.

관련 글타래