워드프레스 404 페이지 홈페이지로 리다이렉션(GeneratePress 테마 용)

워드프레스로 블로그 만들기 이제 며칠 안되었습니다.
나중에 잊지 않기 위해 하나씩 배워가는 것을 기록형으로 포스팅 합니다.
처음 워드프레스를 시작하는 분들에게는 조금이남아 도움이 되지 않을까요? 저도 하나씩 부딪혀 가며 배우고 있습니다.

404 에러 페이지란?

웹사이트에 접속시 잘못 된 주소로 접속하면 없는 페이지 입니다란 페이지가 나옵니다.
워프드레스도 존재하지 않는 페이지에 접속시 아래와 같은 페이지 없음 안내페이지를 보여 줍니다.

저 같은 경우는 zzang.kr 도메인으로 그누보드를 설치한 커뮤니티 홈페이지를 잠시 운영했었습니다. 그래서 네이버/구글에 이전 운영한 링크들이 살아 있어서 그것을 타고 들어온 방문자들은 현재 워드프레스에서 404 페이지를 찾을 수 없다는 안내를 받게 됩니다.

워드프레스 404 안내페이지

404 페이지 홈 리다이렉션

이렇게 404 페이지를 통해 방문하는 방문자 수가 어느정도인지 모르겠지만 그들 또한 저에게는 소중한 방문자라 첫페이지(index)로 경로변경(리다이렉션)을 할 수 있습니다.
방법은 다양하지만 가장 간단하게 404페이지를 홈페이지로 리다이렉션 하는 방법은 아래의 코드를 사용하고 있는 테마 404.php에 삽입하면 됩니다.

<?php  
header("HTTP/1.1 301 Moved Permanently");   
header("Location: ".get_bloginfo('url'));   
exit();
?>

저는 GeneratePress Premium 유료 테마를 현재 사용 중입니다.
다른 테마들은 어떻게 위 코드를 어떻게 넣는지 모르겠지만 비슷할 것으로 예상됩니다.

워드프레스 404 페이지 홈페이지로 리다이렉션(GeneratePress 테마 용)

테마디자인 >> 테마 편집기 >> 404.php 선택 후 기존 소스 코드 대신 위 코드를 넣은 후 파일업데이트 하면 됩니다.
* 기존 404.php 파일 내용은 백업 해 두세요. 저는 아래와 같이 여기에 백업 해 둡니다.

[GeneratePress 테마 404.php 파일 원본 입니다.]

<?php
/**
 * The template for displaying 404 pages (Not Found).
 *
 * @package GeneratePress
 */

if ( ! defined( 'ABSPATH' ) ) {
	exit; // Exit if accessed directly.
}

get_header(); ?>

	<div id="primary" <?php generate_do_element_classes( 'content' ); ?>>
		<main id="main" <?php generate_do_element_classes( 'main' ); ?>>
			<?php
			/**
			 * generate_before_main_content hook.
			 *
			 * @since 0.1
			 */
			do_action( 'generate_before_main_content' );

			generate_do_template_part( '404' );

			/**
			 * generate_after_main_content hook.
			 *
			 * @since 0.1
			 */
			do_action( 'generate_after_main_content' );
			?>
		</main>
	</div>

	<?php
	/**
	 * generate_after_primary_content_area hook.
	 *
	 * @since 2.0
	 */
	do_action( 'generate_after_primary_content_area' );

	generate_construct_sidebars();

	get_footer();

마무리

저처럼 홈페이지/블로그를 옮기거나 다른 분이 사용하던 도메인을 구매/낙장 한 경우는 죽은 링크를 통한 방문자가 있을 것입니다.
이럴 때 워드프레스에서 안내하는 404 페이지를 보여주는 것 보다는 홈페이지로 안내해 소중한 방문자 손실을 막아 보세요.
알면 간단하지만 정확하게 어떻게 해야 하는지 모르면 정말 삽질 합니다.

오늘 위 코드를 구글검색을 통해 알게 되어 index.php 있는 폴더에 404.php 를 만들어 업로드 후 아무리 테스트 해도 안되어 해결 한다고 몇시간을 소비 했습니다. 제가 이용하고 있는 블루호스트 담당자와 채팅으로 도움을 요청했지만 해결이 안되는 등 많은 시도를 했습니다.

그럼 간단한 정보였지만 워드프레스 404 페이지 홈페이지로 리다이렉션 하는 방법에 대한 글이 도움이 되었으면 합니다.