Flex

그누보드 사이트맵 동적 생성기

작성자 정보

  • 관리자 작성
  • 작성일

컨텐츠 정보

본문

오랫만에 들어왔는데 요즘 여기가 한가하네요.

예전에 제가 대충 만들어서 사이트맵 올려 드렸는데 현재 제가 쓰고 있는 사이트맵 생성하는것 공유해 드립니다.

글을 보다 보니 누군가 사이트맵 다시 언급한 내용도 있고 제가 쓰는것 바꾼지도 꽤 되어서 어떻게 할까 고민하다 이렇게 글을 씁니다.


그누보드에서 사이트맵을 동적으로 생성하여 구글 인덱싱 효율을 높이는 방법을 소개합니다. 아래 절차에 따라 sitemap.php 파일을 생성하고 .htaccess 파일을 수정하여 사이트맵을 관리할 수 있습니다.



1단계: sitemap.php 파일 생성



먼저 그누보드 `bbs` 디렉토리 안에 `sitemap.php` 파일을 생성합니다. 이 파일은 XML 형식의 사이트맵을 동적으로 생성하는 역할을 합니다.


bbs/sitemap.php 파일 내용

<?phpinclude_once('./_common.php');header('Content-type: text/xml');header('Cache-Control: no-cache, must-revalidate');header('Pragma: no-cache');// 시간대 설정date_default_timezone_set("America/Los_Angeles");// 게시판 리스트 - 비회원 읽기 가능 게시판$sql = " SELECT * FROM {$g5['board_table']} WHERE bo_list_level = 1 AND bo_read_level = 1";$query = sql_query($sql);$board = array();while ($row = sql_fetch_array($query)) {	$board[] = $row;}echo '<?xml version="1.0" encoding="UTF-8"?>'."n";echo ''."n";// 메인 페이지echo ""."n";echo "  ".G5_URL.""."n";echo "  ".date('c',time()).""."n";echo "  1.0"."n";echo ""."n";// 비회원 읽기 가능 게시판foreach ($board as $key => $val) :	// 마지막 게시물 시간	$sql = " SELECT * FROM {$g5['write_prefix']}{$val['bo_table']} WHERE wr_id = wr_parent AND wr_is_comment = 0 ORDER BY wr_datetime DESC LIMIT 0, 1";	$query = sql_fetch($sql);		// 마지막 게시물 생성 시간이 없으면 현재 시간으로 설정	$wr_datetime = (empty($query['wr_datetime'])) ? date('c',time()) : date('c', strtotime($query['wr_datetime']));		// 게시판 링크 작성	echo ""."n";	echo "  ".G5_BBS_URL."/board.php?bo_table={$val['bo_table']}".""."n";	echo "  {$wr_datetime}"."n";	echo "  daily"."n";	echo "  0.9"."n";	echo ""."n";endforeach;// 게시판 글 생성foreach ($board as $key => $val) :	// 게시판 게시물 작성	$sql = " SELECT * FROM {$g5['write_prefix']}{$val['bo_table']} WHERE wr_id = wr_parent AND wr_is_comment = 0 ORDER BY wr_datetime DESC";	$query = sql_query($sql);		unset($row);	while ($row = sql_fetch_array($query)) {				$seo_title = $row['wr_seo_title'];		if (isset($row['wr_seo_title']) && $row['wr_seo_title'] <> '') {			$url = G5_URL.'/'.urlencode($val['bo_table']).'/'.urlencode($row['wr_seo_title']).'/';		} else {			$url = G5_BBS_URL."/board.php?bo_table={$val['bo_table']}&wr_id={$row['wr_id']}";		}		$wr_datetime = (empty($row['wr_datetime'])) ? date('c',time()) : date('c', strtotime($row['wr_datetime']));				echo ""."n";		echo "  ".$url.""."n";		echo "  {$wr_datetime}"."n";		echo "  0.9"."n";		echo ""."n";	}endforeach;echo ""."n";?>


위 코드처럼 파일 만들고 업로드 하시면 됩니다. 그리고 수정하셔야 하는게 하나 더 있습니다.



2단계: .htaccess 파일 수정



생성된 `sitemap.php` 파일을 웹에서 `sitemap.xml`로 접근할 수 있도록 `.htaccess` 파일을 수정합니다. 이는 SEO를 위한 URL 재작성에 해당합니다.



.htaccess 파일 수정 내용

RewriteBase /RewriteRule ^sitemap.xml$ bbs/sitemap.php [L]


`RewriteBase /` 다음에 위 `RewriteRule`을 추가하면 `https://도메인주소/sitemap.xml`로 접속 시 `https://도메인주소/bbs/sitemap.php`가 실행됩니다.


이렇게 만들면 동적으로 사이트맵 만들고 업데이트 신경 안쓰셔도 됩니다. 예전에 올려 드린 sitemap.xml 만드는것 장단점이 있긴한데 현재는 저는 이렇게 쓰고 있습니다.


제가 쓰고 있는 사이트맵은 이렇게 나옵니다.


사이트맵 실행결과



위에 실행 결과가 여기 올려 드리것과는 조금 틀릴겁니다.

누군가 물어보신것 같은데 제글 댓글로.. 여기에 답변 드리겠습니다.


그리고 구글에서는 사이트 50000개 이상 링크와 50MB 이상은 지원하지 않습니다. 100% 해결책은 아니지만 저는 게시판별 사이트맵을 따로 관리합니다.


그리고 사이트맵 인덱스를 이용하여 알려주는 형태로 만들면 게시판별 50000개 링크까지를 만들수 있기에 이렇게 사용합니다.


여기 지면에 다 설명 하기가 너무 길어서 자세한 내용 알고 싶으시면 아래 링크로 남겨 드리겠습니다.



그누보드 사이트맵: 동적 생성 가이드

좋은 하루 되세요







관련자료

댓글 0
등록된 댓글이 없습니다.
전체 259 / 7 페이지
번호
제목
이름

Favorites


최근글


새댓글


  • 댓글이 없습니다.
알림 0