서기록

워드프레스 고유주소 변경 리디렉션 설정 방법 3가지

2023-11-14 / seogilang

 워드프레스 사용 중 숫자로 된 주소를 한글로 변경한다거나 주소에 카테고리를 변경하거나 넣었다가 빼는 등 고유주소를 변경하는 경우가 있다.

 고유주소를 변경하게 되면 기존에 사용하던 주소가 변경되기 때문에 404 에러가 발생할 수 있는데 이를 방지하고자 한다면 301 리디렉션 설정을 해야 한다.

 설정을 위한 방법으로는 플러그인을 사용하는 방법, functions.php에 코드를 추가하는 방법, 서버 설정을 변경하는 방법이 있다.

 

워드프레스 고유주소 변경 후 리디렉션 설정

※ 리디렉션 설정 값의 이해

 리디렉션 설정은 각 방법마다 차이가 있지만 설정에 사용되는 값은 같기 때문에 먼저 값을 잘 이해해야 한다.

 

Source URL

 변경 전 주소 부분.

 [https://seogilog.com/1]을 다른 주소로 리디렉션 한다면 홈페이지 주소는 제외하고 [/1] 값만 넣으면 되며, [https://seogilog.com/it-info/글ID]의 주소에서 카테고리 값인 [it-info]를 삭제하거나 변경하고자 한다면 하위에 모든 주소를 리디렉션 해야 하므로 [^it-info(.+)$]와 같은 정규식을 사용하면 된다.

 

Target URL

 리디렉션 할 주소 부분.

 정규식을 사용하여 여러 주소를 리디렉션하는 경우 글ID 부분을 [/$1]로 넣어주면 된다.

 

리디렉션 유형

 301(영구 리디렉션), 302(임시 리디렉션), 307(임시 리디렉션) 중 선택하면 된다.

 302와 307은 둘 다 임시 리디렉션이지만 URL 유지 여부의 차이가 있는데 어차피 고유주소를 변경했다면 영구 리디렉션에 해당하기 때문에 301만 알고 있으면 된다.

 

– 플러그인으로 리디렉션 설정.

 리디렉션 기능만 있는 플러그인을 사용해도 되고 rankmath 같은 seo 플러그인은 리디렉션 기능을 포함하기 때문에 이를 사용해도 된다.

 여기서는 rankmath 플러그인으로 리디렉션 설정을 했지만 다른 플러그인을 사용하더라도 큰 차이는 없을 것이다.
(위에서 소개한 3가지 값만 이해했다면 어렵지 않다)

 

 [리디렉션] 화면으로 이동하여 [새로 추가] 버튼을 클릭.

 소스 URL(Source URL)을 넣고 1:1 리디렉션이라면 [일치] 하위 주소를 모드 리디렉션한다면 [정규 표현식]을 선택.

 수신처 URL(Target URL), 리디렉션 유형을 넣고 [리디렉션 추가] 버튼을 클릭하면 된다.

워드프레스 고유주소 변경 후 리디렉션 설정

 

– functions.php으로 리디렉션 설정.

 functions.php에 코드를 추가해서 리디렉션 것도 가능하다.

 다만 관리나 편의성은 플러그인이 편하고, 성능 부분으로 보면 서버 설정을 변경하는 것이 더 좋기 때문에 그다지 추천하는 방법은 아니다.

 플러그인이 작동하지 않고 서버 설정을 할 수 없는 경우나 특수한 목적이 있는경우 사용할만한 방법이며 아래에 제시한 코드도 작성하기 나름이기 때문에 그냥 functions.php으로도 리디렉션이 가능하구나 정도로 보자.

▷ 1:1 리디렉션 코드

function custom_redirect() {

 if ($_SERVER[‘REQUEST_URI’] == ‘/it/테스트‘) {

  wp_redirect(‘https://seogilog.com/테스트‘, 301);

  exit;

  }

}

add_action(‘template_redirect’, ‘custom_redirect’);

 

▷ 정규식 리디렉션 코드

function custom_redirect() {

 $request_uri = $_SERVER[‘REQUEST_URI’];

 if (preg_match(‘#^/it-info/(.*)$#i‘, $request_uri, $matches)) {

  wp_redirect(home_url(‘/‘ . $matches[1]), 301);

  exit;

 }

}

add_action(‘template_redirect’, ‘custom_redirect’);

 

– 서버에서 리디렉션 설정.

 서버 설정을 변경하여 리디렉션 설정을 할 수 있다.

 사용하고 있는 서버가 아파치인지 nginx인지에 따라 다르지만 설정해야 하는 파일이 다르며 형식도 조금 차이가 있다.

 

아파치 서버.

 .htaccess 파일에 코드를 추가한다.

▷ 1:1 리디렉션

Redirect 301 /1 /테스트

 

▷ 정규식 리디렉션

RewriteEngine On

RewriteRule ^it-info/(.*)$ /$1 [R=301,L]

 

nginx 서버.

 nginx.conf 파일에 코드를 추가한다.

▷ 1:1 리디렉션

server {

 location = /1 {

  return 301 /테스트;

 }

}

 

▷ 정규식 리디렉션

server {

 location ~* ^/it-info/(.*)$ {

  return 301 /$1;

 }

}

 

그 외 내용

 리디렉션을 사용할 일이 많다면 당연히 플러그인을 사용하는 것을 추천한다.

 그렇지 않고 한 번 설정 후 변경할 일이 없다면 서버 설정을 변경하는 것도 좋다.

 functions.php에 php 코드를 추가하는 방법은 두 방법이 되지 않거나 다른 특수한 목적이 있는 경우 사용하는 것을 추천한다.