어떤 방법이 가장 좋을지 고견 부탁드립니다(게시글 이동 관련)

2025-09-17 (수) 09:49:24 905

안녕하세요. 


현재 홈페이지에 작성 된 글을 다른 게시판으로 이동 시키려고 하는데요,


게시판을 이동시키면 원본 글 url 이 바뀌더라구요

문제는 원본 글이 구글검색이나 네이버검색에 이미 색인되어 있으면

게시판 이동해버리면 구글검색으로 해당 글을 클릭하면 "이동되었거나 삭제된 게시물입니다" 라고 뜨더라구요


글이 한두개가 아닌 상황인데

만약 구글 검색결과로 나온 제홈페이지 글  url이  https://홈피주소/게시판A   이라고 가정하고

해당 글을 https://홈피주소/게시판B  으로 옮겼다면


리다이렉션? 리다이렉트 시키는게 베스트 방법일까요?

옮겨야하는 게시글이 몇백개가 되다 보니 일일이 리다이렉트 시키는게 좀 힘들어보이는데

혹시 가장 쉬운 방법은 없을까요??


답변주시는 분들 미리 감사드립니다..

답변 2개 / 댓글 2개

2025-09-17 (수) 17:38:11

게시글 이동 처리시 이동내역을 별도 내역 테이블에 저장하고,

이 내역으로 리다이렉트 하는 방법을 검토해볼 수 있습니다.

1. 게시글 이동 내역 테이블 생성 (샘플)

Copy
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 적당한 위치에 추가 (샘플)
Copy
// 이동 이력 저장
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 상단에 추가 (샘플)

Copy
// 이동된 게시글 리다이렉트
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;
  }
}

답변에 대한 댓글 1개

답변감사합니다. 일단 시도해보겠습니다!!

주소가 전체적으로 바뀐거라면 없는 주소일때 포워딩 하는 방식보다는 없는 페이지 오류 페이지를 띄워 홈페이지로 유입되도록 처리하거나 포워딩 해서 처리하는 방법이 있긴 합니다.

참고:

✅ 방법 1: .htaccess와 PHP를 이용한 리다이렉트 (Apache 서버 기준)

  1. .htaccess 파일을 프로젝트 루트에 생성하거나 수정:

    
     

    ErrorDocument 404 /redirect.php

  2. redirect.php 파일에서 메인 페이지로 이동:

    
     

    <?php header("Location: /index.php"); exit; ?>

답변에 대한 댓글 1개

답변 감사합니다.

결국 말씀하신게 리다이렉트 하라는 말씀이신거같은데

애초에 다른 방법은 없나보네요ㅠ

답변을 작성하려면 로그인이 필요합니다.