예전부터 해보고 싶은 기능이었는데, 오늘에야 할 수 있게 됐다.
방법은 몇가지가 있겠지만, wp-login.php
를 바꾸기로 했다.
검색에서 대충 얻어걸린 한 글을 참고했다.
wp-login 이름바꾸기 및 수정
WordPress 가 설치된 디렉토리에 wp-login.php 파일이 있다. 이 파일을 다른 이름으로 복사하고, 원본은 지우거나, 다른 장소에 보관한다.
새 파일명을 예를 들어 mylogin.php 라고 하고, 이 파일을 열고, 파일 내부에 있는 wp-login.php
항목을 모두 mylogin.php 로 바꾼다.
작업 끝. 만약 Cache 관련 플럭인을 사용하고 있다면, 캐시를 모두 삭제해준다.
이제 새롭게 로그인하려면, 사이트주소/mylogin.php 로 접속해줘야 한다. (기본값은 사이트주소/wp-login.php)
이것을 하는 목적은 쓸데없는 접근을 막기 위함이다. 이 계정 탈취해서 뭐에 쓰겠다고, 접근 시도가 그래도 있긴 한 듯 하다. 따라서, 기본값인 wp-login.php 만 바꿔줘도, 적어도 자동화된 시도는 줄일 수 있지 않을까.
logout 은 어떻게?
저렇게 해놓으면, 화면에 있는 로그아웃 메뉴는 사용할 수 없게 된다. 테마에 따라 다르겠지만, 아무튼 기본 로그아웃 메뉴는 사용할 수가 없다.
두가지 해법이 있다.
첫번째, 사이트주소/mylogin.php?action=logout
을 웹브라우저 주소창에 직접 입력하여 로그아웃을 수행.
두번째, wp-includes\general-template.php
파일을 열고, 두군데를 수정해준다.
function wp_logout_url
에서 wp-login.php 를 mylogin.php 로.function wp_login_url
에서 wp-login.php 를 mylogin.php 로.
그러면 메뉴항목을 종전과 같이 사용할 수 있게 된다.
** 주의!
general-template.php 를 수정했다면, 반드시 Sidebar 에 Meta Widget 을 올려놓지 말아야 한다. 거기엔 ‘Log in’ 항목이 있어서, 로그인 접속 주소가 노출이 되고, 결국 지금까지 한 작업이 말짱 도루묵이 되어 버린다.
그러나 완벽하진 않다.
한가지 문제가 여전히 남아있다.사이트주소/wp-admin
으로 접속하면, 로그인페이지로 자동 redirection 되어, 결국 로그인 php 가 노출된다.
이것까지 막아야 완벽(?)할텐데… 여러 방법을 찾아봤으나, 아직 제대로 작동하는 코드를 찾지 못했다.
** 업그레이드시 주의
이 작업은, WordPress 소스를 직접 고쳤기 때문에, 향후 업그레이드가 되면 역시 또 손을 봐줘야 한다.