모니위키에는 기본적으로 “위키주소/wiki.php?action=sitemap” 와 같이 접근하면 사이트맵을 출력해주는 플러그인이 설치되어 있다. 하지만 구글 사이트 관리자에서 이 주소로 제출하려고 하면 사이트맵을 HTML로 인식하고 “Sitemap이 HTML 페이지로 노출됩니다. 대신 지원되는 사이트맵 형식을 사용하세요.”와 같은 오류를 뱉어낸다.
그래서 본인은 plugins/sitemap.php의 코드를 아래와 같이 수정하였다.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 |
(앞부분 생략) HEAD; $foot=<<<FOOT </urlset> FOOT; # output header("Content-Type: text/xml"); print $head.$out.$foot; // 출력한 다음 아래 함수를 호출해 파일을 저장 save_sitemap($head.$out.$foot); } // 새로 추가한 함수 function save_sitemap($content) { $fp = fopen("/var/www/html/inhawiki/sitemap.xml", 'w+'); $written = fwrite($fp, $content, strlen($content)); fclose($fp); } |
위와 같이 해당 웹사이트의 루트에 해당하는 곳에 사이트맵 데이터를 sitemap.xml로 저장하도록 하였다. 잘 작동되더라.
근데 문제점은 wiki.php?action=sitemap 으로 접속을 해야 파일이 갱신된다는 건데.. 이건 데몬을 하나 만들던지 해서 주기적으로 접속을 시키면 될 것 같다.