ワードプレスの管理画面ページのURLを変更する方法

〜方法の覚書

私はそのCMSのログイン画面の場所、知っているわよ。。。。

 

 

ワードプレスは便利なフリーCMSですが、その分みんなが同じディレクトリ名になっています。そのため管理画面などは簡単に見つけれてしまいます。

 

なんて思われていても、アカウントとパスワードを知らないと入れません。
だけど、ワードプレスは需要があるせいかハックの対象になっているのも事実です。

私が作るとき、ワードプレスの管理画面のURLを変えています。

例えば、通常はこんな感じ。

ドメイン名 / wp-login.php

変更することで、ここからしかログインできなくなります。

ドメイン名 / 123456798aabbccddeeff0135789.php

 

ようするに、自分だけの知っているURLでしかアクセスできなくなります。

それは簡単です。function.phpに以下のソースを入れて、wp-login.phpと同じ位置に任意のファイルをアップロードするだけ。

まず自分だけしっているファイル名のログインページを作ります。例としてabc.phpとします。

■abc.phpを作成(wp-login.phpと同じ位置にアップロード)


define( 'ANYWHERE_LOGIN', sha1( 'keyword' ) );
require_once './wp-login.php';

■function.php(以下を追記)


add_filter( 'show_admin_bar', '__return_false' );
define( 'ANYWHERE_LOGIN_PAGE', 'abc.php' );
add_action( 'login_init', 'anywhere_login_init' );
add_filter( 'site_url', 'anywhere_login_site_url', 10, 4 );
add_filter( 'wp_redirect', 'anywhere_login_wp_redirect', 10, 2 );
if ( ! function_exists( 'anywhere_login_init' ) ) {
function anywhere_login_init() {
if ( !defined( 'ANYWHERE_LOGIN' ) || sha1( 'keyword' ) != ANYWHERE_LOGIN ) {
status_header( 403 );
exit;
}
}
}
if ( ! function_exists( 'anywhere_login_site_url' ) ) {
function anywhere_login_site_url( $url, $path, $orig_scheme, $blog_id ) {
if ( $path == 'wp-login.php' &&
( is_user_logged_in() || strpos( $_SERVER['REQUEST_URI'], ANYWHERE_LOGIN_PAGE ) !== false ) )
$url = str_replace( 'wp-login.php', ANYWHERE_LOGIN_PAGE, $url );
return $url;
}
}
if ( ! function_exists( 'anywhere_login_wp_redirect' ) ) {
function anywhere_login_wp_redirect( $location, $status ) {
if ( strpos( $_SERVER['REQUEST_URI'], ANYWHERE_LOGIN_PAGE ) !== false )
$location = str_replace( 'wp-login.php', ANYWHERE_LOGIN_PAGE, $location );
return $location;
}
}

 

以上で終わり。これでwp-login.phpでログイン画面が出なくなり、自分だけ知っているログインページができます。

参考ページ:WordPress私的マニュアル

 

タイトルとURLをコピーしました