Categories
개발 레시피

wp-login.php 직접 접근을 리다이렉트

wp-login.php 파일에 직접 접근하면 워드프레스의 기본 로그인 창이 뜨는데, 몇몇 고객들은 이것을 달가워하지 않는다. 그래서 이것을 막아달라는 요청을 하는데, wp-login.php는 사실 로그인, 로그아웃에 대한 백엔드를 담당하는 역할을 맡고 있기 때문에 접근 자체를 차단하는 것은 바람직하지 않다.

대신 아무 파라미터 없이 접근했을 때에는 웹사이트 내부에 구축되어 있는 내 계정 페이지로 리다이렉트 시키는 것이 좋다. 이것은 .htaccess에서 구현할 수 있으므로 이렇게 처리한다.

# disable /wp-login.php ---> /my-account/
RewriteCond %{HTTP_HOST}    my-website\.co\.kr
RewriteCond %{QUERY_STRING} ^$
RewriteRule ^wp-login.php$ /my-account/ [R=301,L]

덧: 구텐베르크 오고 나서 지금까지의 syntax highlighting 플러그인들이 야단이 난 것 같다.

수정 1: 위처럼 쓰면 /wp-admin/ 으로 접근했을 때 로그인 처리가 올바로 되지 않는다. wp-login.php 쪽에 실제로 접속해야 하는 것은 로그아웃 처리 뿐이다. 그러므로 두번째 RewriteCond을 다음처럼 변경한다.

RewriteCond %{QUERY_STRING} !(?:^|&)action=logout

댓글 남기기