워드프레스 사용 중 숫자로 된 주소를 한글로 변경한다거나 주소에 카테고리를 변경하거나 넣었다가 빼는 등 고유주소를 변경하는 경우가 있다.
고유주소를 변경하게 되면 기존에 사용하던 주소가 변경되기 때문에 404 에러가 발생할 수 있는데 이를 방지하고자 한다면 301 리디렉션 설정을 해야 한다.
설정을 위한 방법으로는 플러그인을 사용하는 방법, functions.php에 코드를 추가하는 방법, 서버 설정을 변경하는 방법이 있다.
목차(Contents)
워드프레스 고유주소 변경 후 리디렉션 설정
※ 리디렉션 설정 값의 이해
리디렉션 설정은 각 방법마다 차이가 있지만 설정에 사용되는 값은 같기 때문에 먼저 값을 잘 이해해야 한다.
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 코드를 추가하는 방법은 두 방법이 되지 않거나 다른 특수한 목적이 있는 경우 사용하는 것을 추천한다.