어떤 방법이 가장 좋을지 고견 부탁드립니다(게시글 이동 관련)
본문
안녕하세요.
현재 홈페이지에 작성 된 글을 다른 게시판으로 이동 시키려고 하는데요,
게시판을 이동시키면 원본 글 url 이 바뀌더라구요
문제는 원본 글이 구글검색이나 네이버검색에 이미 색인되어 있으면
게시판 이동해버리면 구글검색으로 해당 글을 클릭하면 "이동되었거나 삭제된 게시물입니다" 라고 뜨더라구요
글이 한두개가 아닌 상황인데
만약 구글 검색결과로 나온 제홈페이지 글 url이 https://홈피주소/게시판A 이라고 가정하고
해당 글을 https://홈피주소/게시판B 으로 옮겼다면
리다이렉션? 리다이렉트 시키는게 베스트 방법일까요?
옮겨야하는 게시글이 몇백개가 되다 보니 일일이 리다이렉트 시키는게 좀 힘들어보이는데
혹시 가장 쉬운 방법은 없을까요??
답변주시는 분들 미리 감사드립니다..
답변 2
주소가 전체적으로 바뀐거라면 없는 주소일때 포워딩 하는 방식보다는 없는 페이지 오류 페이지를 띄워 홈페이지로 유입되도록 처리하거나 포워딩 해서 처리하는 방법이 있긴 합니다.
참고:
✅ 방법 1: .htaccess와 PHP를 이용한 리다이렉트 (Apache 서버 기준)
-
.htaccess파일을 프로젝트 루트에 생성하거나 수정:ErrorDocument 404 /redirect.php -
redirect.php 파일에서 메인 페이지로 이동:
<?php header("Location: /index.php"); exit; ?>
게시글 이동 처리시 이동내역을 별도 내역 테이블에 저장하고,
이 내역으로 리다이렉트 하는 방법을 검토해볼 수 있습니다.
1. 게시글 이동 내역 테이블 생성 (샘플)
CREATE TABLE `g5_board_move_history` (
`bh_id` int(11) NOT NULL AUTO_INCREMENT,
`old_bo_table` varchar(20) NOT NULL,
`old_wr_id` int(11) NOT NULL,
`new_bo_table` varchar(20) NOT NULL,
`new_wr_id` int(11) NOT NULL,
PRIMARY KEY (`bh_id`),
KEY `idx_old_board_wr` (`old_bo_table`, `old_wr_id`)
) ENGINE=MyISAM DEFAULT CHARSET=utf8;
2. /bbs/move_update.php 적당한 위치에 추가 (샘플)
// 이동 이력 저장
if ($sw == 'move' && !$row2['wr_is_comment'] && $i == 0) {
sql_query("INSERT INTO g5_board_move_history SET old_bo_table='{$bo_table}', old_wr_id='{$row2['wr_id']}', new_bo_table='{$move_bo_table}', new_wr_id='{$insert_id}'");
}
3. /bbs/board.php 상단에 추가 (샘플)
// 이동된 게시글 리다이렉트
if ($bo_table && $wr_id && empty($write['wr_id'])) {
$move = sql_fetch("SELECT new_bo_table, new_wr_id FROM g5_board_move_history WHERE old_bo_table='{$bo_table}' AND old_wr_id='{$wr_id}'");
if ($move) {
header("HTTP/1.1 301 Moved Permanently");
header("Location: " . get_pretty_url($move['new_bo_table'], $move['new_wr_id']));
exit;
}
}