워드프레스 wp-admin 변경하기

wp-admin 보호

wordpress 사이트에 대한 bot의 공격은 wp-admin와 wp-login.php URL을 대상으로 진행된다.
플러그인을 활용해서 경로를 변경해도 되지만 플러그인을 지나치게 많이 설치하면 사이트 속도도 느려진다.
간단한 설정 변경으로 접속 경로를 변경할 수 있다.


설정 파일 수정

Nginx를 사용한 경우 3개의 파일에 내용을 수정해야 한다.

wp-config.php 파일 수정
define('WP_ADMIN_DIR', '[변경이름]');
define('ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);

wp-admin 대신에 접속하고 싶은 url 명칭을 [변경이름]위치에 넣으면 된다.

functions.php 파일 수정
add_filter('site_url', 'wpadmin_filter', 10, 3);

function wpadmin_filter( $url, $path, $orig_scheme ) {
    $request_url = $_SERVER['REQUEST_URI'];

    $check_wp_admin = stristr($request_url, 'wp-admin');
    if($check_wp_admin){
        wp_redirect( home_url( '404' ), 302 );
        exit();
    }

    $old  = array( "/(wp-admin)/");
    $admin_dir = WP_ADMIN_DIR;
    $new  = array($admin_dir);
    return preg_replace( $old, $new, $url, 1);
}

functions.php 파일 마지막에 위의 내용을 붙여 넣는다.
functions.php 파일은 테마별로 있지만 공통 적용을 위해서 wp-includes 하위 폴더의 파일에 포함 시켰다.

nginx의 conf 파일 수정

conf 파일은 개인별로 다를 수 있다. nginx.conf 파일 또는 conf.d 폴더의 도메인 설정 파일을 수정해야 한다.
apache를 사용하는 경우 .htaccess 파일을 수정하면 된다.

location ~* /[변경이름] {
    rewrite ^/[변경이름]/(.*) /wp-admin/$1 last;
}

위의 내용을 .conf에 추가하고 nginx를 재시작 한다.


nginx 재시작
systemctl restart nginx