워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem

이 글에서는 워드프레스 주소 변경으로 사이트에 접속하지 못하는 문제가 발생하거나 사이트 이전 후 주소를 변경해야 하는 경우 해결 방법에 대해 살펴보겠습니다. 또한, wp 또는 wordpress 하위 폴더에 워드프레스를 설치했을 때 사이트 주소에서 하위 폴더명을 제거하는 방법에 대해서도 설명합니다.

주소 변경 후에 오류가 발생하는 경우에 복구하는 방법에 대하여 가능한 한 상세히 설명하기 노력했습니다. DB 작업을 하는 경우 반드시 DB 백업을 먼저 할 것을 권장합니다. 복구에 어려움을 겪는 경우 여기에서 서비스(유료)를 의뢰하실 수 있습니다. 최소한의 비용으로 복구를 도와드리겠습니다.

[ 이 글은 2022년 5월 11일에 마지막으로 수정되었습니다. ]

워드프레스 주소 변경으로 사이트에 접속하지 못하는 문제 해결 방법

보통 워드프레스는 루트 디렉터리에 설치되지만, 경우에 따라 /wp, /wordpress 또는 다른 경로에 설치하는 경우가 있습니다. 예를 들어, 웹호스팅 서비스를 신청하고 워드프레스를 자동 설치하는 옵션을 선택할 때 /wp, /wordpress 또는 다른 경로에 설치하도록 선택할 수 있습니다.

이 경우 www.abc.com/wp/ 또는 www.abc.com/wordpress/ 처럼 사이트 URL 주소 뒤에 하위 경로를 입력해야 하는 번거로움이 발생합니다. 처음 워드프레스를 접하는 분들이 많이 범하는 실수가 무심코 워드프레스의 관리자 페이지에서 사이트 주소를 변경하는 것입니다.

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem

알림판에서 설정 > 일반 메뉴 아래에서 워드프레스 주소(URL)사이트 주소(URL)를 변경할 수 있습니다.

  • 워드프레스 주소(URL) - WordPress 코어 어플리케이션 파일(예: wp-config.php, wp-admin, wp-content, wp-includes)이 포함된 디렉터리의 전체 URL 주소
  • 사이트 주소(URL) - 사용자들이 WordPress 사이트에 접속하기 위해 입력하는 주소로 WordPress의 메인 index.php 파일이 설치되어 있는 디렉터리

그럼 /wp 하위 폴더에 워드프레스 코어 파일들이 위치해 있는데, 워드프레스 주소와 사이트 주소를 변경하면 어떤 일이 발생할까요? 우선 워드프레스 URL 주소와 사이트 주소를 바꾸고 저장을 누르는 순간 사이트에서 다음과 비슷한 오류 메시지를 출력합니다.

Not Found

The requested URL /wp-login.php was not found on this server.

그리고 홈페이지 주소(예: www.abc.com)를 입력하면

Forbidden

You don't have permission to access / on this server.

위와 비슷한 오류 메시지가 표시될 것입니다. 처음 워드프레스를 접하는 분들은 이 상황에 당황하게 됩니다. 이 경우 다음과 같은 방법으로 다시 원 상태로 복구가 가능합니다. (데이터베이스에 접근할 수 없는 경우 웹호스팅 업체에 문의해보시기 바랍니다. phpMyAdmin에 접속할 수 있는 방법을 알려줄 것입니다.)

데이터베이스(DB) 복원

많은 웹호스팅 업체에서 기본 서비스로 데이터베이스(DB) 복원 기능을 제공합니다. 예를 들어, cafe24의 경우 cafe24.com에서 로그인한 후 "DATA&DB복원/백업" 메뉴를 통해 이전 상태로 복원이 가능합니다.

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem
카페24에서 DB 복원하기

DB 복원 기능을 제공하는 경우 이 방법으로 쉽게 복원할 수 있습니다. 호스팅 업체에 따라 이 기능이 제공될 수도 있고, 그렇지 않을 수 있습니다. 해외 호스팅 중 하나인 사이트그라운드에서는 지난 30일 이내의 기간으로 롤백이 가능합니다(참고). 두 번째 방법을 사용하기 전에 DB 복원이 가능한지 웹호스팅 업체에 문의하여 확인해보시기 바랍니다.

이 방법을 이용하여 DB를 과거 버전으로 되돌릴 경우 그 사이 추가되었거나 업데이트된 사항(예: 글/페이지를 발행했거나 업데이트한 경우)은 사라집니다. 백업본 시점 이후 중요한 업데이트가 이루어진 경우 혹은 쇼핑몰에서 주문을 계속 받는 경우 등의 환경에서는 아래 단원에서 설명하는 방법으로 잘못된 주소를 변경할 수 있습니다.

DB에서 사이트 주소 수정하기

두 번째 방법은 DB에 접속하여 변경된 주소를 다시 원상태로 수정하는 것입니다. 이 작업을 수행하기 전에 반드시 DB를 백업 받아놓으시기 바랍니다. 이 작업은 보통 phyMyAdmin이라는 도구에 접속하여 이루어집니다.

웹호스팅 업체 사이트에서 로그인한 후에 DB를 수정하는 메뉴를 찾도록 합니다. (예: Cafe24의 경우 서비스 접속관리 > MySQL 웹어드민 메뉴에서 접속 가능 카페24에서는 phpMyAdmin 서비스를 종료했습니다. 카페24를 이용하는 경우 여기를 참고하여 phpMyAdmin을 설치하시기 바랍니다.) phyMyAdmin에 접속하기 위해서는 웹호스팅 서비스를 신청할 때 입력한 DB 이름과 비밀번호가 필요합니다.

Bluehost, Siteground, FastComet 등 해외 호스팅을 이용하는 경우 보통  cPanel에 접속하면 phpMyAdmin에 접근할 수 있는 툴을 찾을 수 있습니다.

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem
phpMyAdmin 툴

Databases > phpMyAdmin을 클릭합니다.

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem

phyMyAdmin에 접속하면 아래와 비슷한 화면이 표시됩니다. 해당 데이터베이스를 선택합니다.

다음에 표시되는 화면의 왼쪽 사이드바에서 wp_options를 선택합니다. (테이블 프리픽스에 따라 wp_ 부분은 다를 수 있습니다. 예: wpex_options)

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem

실제 화면은 위와 약간 다를 수 있을 것입니다. (* 기존 이미지는 인터페이스가 영문이었고 버전이 너무 낮아서 최신 이미지로 변경했습니다. 이미지는 phpMyAdmin 버전과 언어에 따라 다를 수 있습니다. 그림은 해외호스팅 중 하나인 SiteGround에서 제공하는 phpMyAdmin을 갈무리한 것입니다.)

  • (1) wp_options를 선택합니다.
  • (2) Browse(보기)를 선택합니다.
  • (3) option_name에서 siteurl과 home 항목을 찾습니다.

이제 siteurl과 home 항목을 수정해야 합니다. 편집 아이콘(연필 모양 아이콘)을 클릭하여 URL 주소를 수정한 후에 실행을 누르면 주소가 수정됩니다. siteurl과 home 항목 모두에 대하여 이 작업을 수행합니다. 이제 www.abc.com/wp처럼 주소를 입력하면 사이트가 제대로 표시되는 것을 확인하실 수 있습니다.

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem

phpMyAdmin에서 워드프레스 주소와 사이트 주소를 변경하는 과정을 다음 유튜브 영상에서 확인할 수 있습니다.

워드프레스 주소(WP_HOME)와 사이트 주소(WP_SITEURL)

그럼 www.abc.com/wp처럼 입력하지 않고 www.abc.com와 같이 하위 경로를 생략할 수는 없을까요? "

먼저 "워드프레스 주소"와 "사이트 주소"의 차이점을 이해하면 도움이 됩니다.

두 용어가 약간 혼동이 될 수 있습니다. 이전에 참조했던 자료가 잘못되어 약간 오류가 있었습니다. "WP_HOME vs WP_SITEURL"에서 제대로 설명하고 있네요.

WP_HOME - Home 주소

  • homeurl
  • home_url()
  • 사이트 주소 (URL)
  • http://example.com

WP_SITEURL - 워드프레스 코어 파일 경로 (https://codex.wordpress.org/Giving_WordPress_Its_Own_Directory)

  • siteurl
  • site_url()
  • 워드프레스 주소 (URL)
  • http://example.com/wordpress

최종적으로 다음 그림과 같이 주소를 변경하고 사용자가 루트로 접속했을 때 워드프레스 코어 파일이 있는 경로로 연결되도록 설정을 해주어야 합니다.

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem

네임서버 문제

웹호스팅에서 새로운 도메인을 연결하려면 도메인의 네임서버가 해당 호스팅에서 제시하는 정보로 변경되어야 합니다. 그리고 도메인의 네임서버 정보가 완전히 변경되기까지 24시간에서 48시간 정도 소요될 수 있습니다.

호스팅 상품에 따라 추가할 수 있는 도메인 개수가 제한되는 경우도 있습니다. 보통 최저가 상품에서는 도메인을 하나만 연결할 수 있는 경우가 많습니다. 도메인의 네임서버를 변경하는 방법에 대해서는 다음 글을 참고하시기 바랍니다.

  • 사이트의 도메인 이름을 다른 도메인으로 변경하는 방법

워드프레스 사이트 주소를 하위 폴더에서 루트로 변경하기(주소에서 wp, wordpress 등 하위 폴더명 제거하기)

이제 www.abc.com/wp 폴더에 워드프레스를 설치한 상황에서 www.abc.com처럼 하위 폴더 경로를 입력하지 않고 홈페이지에 접속하도록 설정하는 방법을 살펴보겠습니다.

사이트 주소(URL) 변경

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem

먼저 알림판의 설정 > 일반에서 사이트 주소를 루트로 변경합니다.
위의 그림과 같이 "사이트 주소" URL에서 하위 디렉터리 이름을 제거합니다.

변경 사항 저장을 누르더라도 "Not Found. The requested URL /wp-login.php was not found on this server."이라는 오류 메시지는 표시되지 않을 것입니다. 하지만 http://domain-address/wp에서 사이트 제목을 클릭하면 사이트가 루트 경로(예: www.abc.com)로 바뀌면서 "Forbidden. You don't have permission to access / on this server."와 비슷한 오류 메시지가 출력될 수 있습니다.

index.php 파일과 .htaccess 파일을 하위 폴더에서 루트(메인) 폴더로 복사하기

워드프레스 설치 폴더(예: /wp/ 하위 폴더)의 index.php 파일과 .htaccess 파일을 루트 폴더로 복사합니다(이동하지 말고 원 파일을 그대로 두고 복사하도록 합니다).

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem

예를 들어, index.php 파일을 /wp/  하위 폴더에서 루트 폴더로 복사하려면 FTP에 접속한 상태에서 /wp/ 경로에 있는 index.php 파일을 로컬 컴퓨터의 임의의 디렉토리로 복사합니다.
컴퓨터에 임시로 복사한 index.php 파일을 루트 디렉터리로 업로드합니다.

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem

마찬가지 방식으로 .htaccess 파일을 하위 폴더(예: /wp/)에서 루트 폴더로 복사합니다. (FTP 사용 방법은 여기를 참고해보세요.)

index.php 파일 수정하기

이제 루트 폴더로 복사한 index.php에서 하나를 수정하도록 합니다.

FileZilla를 사용하는 경우 index.php 파일을 오른쪽 마우스 버튼을 클릭하고 "보기/편집"을 클릭합니다.

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem

그러면 기본 텍스트 에디터(또는 FTP 클라이언트에서 설정된 텍스트 에디터)에서 index.php 파일이 열립니다.

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem

끝 라인을 다음과 같이 수정합니다(그림 참고).

require( dirname( __FILE__ ) . '/wp/wp-blog-header.php' );

참고: 이 작업은 index.php 파일을 로컬 컴퓨터로 복사한 다음 컴퓨터에서 직접 수정한 후에 FTP를 통해 웹호스팅 서버로 올려도 상관 없습니다. /wp/... 부분은 해당 서브 폴더 이름에 따라 적절히 수정합니다. (예를 들어, /wordpress/ 하위 폴더에 워드프레스를 설치한 경우 /wp//wordpress/로 변경하도록 합니다.)

고유주소 설정 저장하기

이제 수정이 완료되었습니다. 설정 > 고유주소로 이동하여 아무 설정을 건드리지 말고 설정을 업데이트합니다. 그러면 Rewrite 규칙이 새로 생성되고 .htaccess 파일이 업데이트됩니다. 이제 사이트가 정상적으로 표시될 것입니다. 정상적으로 표시되지 않으면 고유주소 설정 저장을 다시 눌러보도록 합니다.

참고: 만약 자동으로 .htaccess 파일이 업데이트되지 않으면 고유주소 설정 화면의 맨 아래에 나와 있는 코드를 복사하여 .htaccess 파일에 덮어쓰기하면 됩니다.

참고로 루트 폴더 아래의 .htaccess 파일과 /wp/ 하위 폴더 아래의 .htaccess 파일을 비교해보니(.htaccess 파일에 별도의 수정을 하지 않았다고 가정) 아래에 표시된 부분만 차이가 있네요

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /   <!-- * /wp/ 하위 폴더의 .htaccess에서는 RewriteBase /wp/ -->
RewriteRule ^index\.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]  <!-- * /wp/ 하위 폴더의 .htaccess에서는 RewriteRule . /wp/index.php [L] -->
</IfModule>

# END WordPress

워드프레스 주소 변경 안됨 - wodeupeuleseu juso byeongyeong andoem

부록

추가 1 - 사이트 주소 변경으로 인해 사이트에 접근할 수 없는 문제가 발생할 때 DB에 접속하지 않고 임시로 복구하는 방법

위에서 설명한 방법이 정상적인 복구 방법입니다만, DB에 접속에 멀미를 느끼는 분들을 위한 임시적인 방법을 소개해드립니다. FTP에 접속하여 wp-config.php 파일을 엽니다.

// ** MySQL settings - You can get this info from your web host ** // 라인 바로 위에 다음 두 라인을 추가합니다.

define('WP_HOME','http://www.example.com/wordpress');
define('WP_SITEURL','http://www.example.com/wordpress');

URL 주소를 변경하기 전의 사이트 주소로 변경합니다. 저장하고 업로드하고 워드프레스에 접속하면 정상적으로 접속될 것입니다. 사이트 URL 주소와 워드프레스 URL 주소 설정은 편집할 수 없도록 잠기게 됩니다(참고).

추가 2 - 워드프레스 함수 파일에서 사이트 주소 바꾸는 방법

워드프레스 테마의 함수 파일(functions.php)에 다음 두 라인을 추가합니다(참고).

update_option('siteurl','http://www.example.com/wordpress');
update_option('home','http://www.example.com/wordpress');

이상으로 여러 가지 방법을 통해 워드프레스 사이트 주소 변경으로 인한 오류를 복구하는 방법을 살펴보았습니다.

참고:

  • Siteground에서 워드프레스 자동 설치하기
  • 워드프레스 비밀번호 분실 시 가장 간편하게 재설정하는 방법