MENU

【WordPress】ログインURLをプラグイン無しで変更する方法

WordPressは多くのウェブサイトで利用されている人気のCMSですが、そのデフォルトのログインURLはセキュリティ上のリスクを伴います。

この記事では、プラグインを使用せずにWordPressのログインURLを変更する方法について詳しく解説します。

具体的には、functions.phpファイルの編集手順や、変更後の確認方法、正常にログインできるかのテスト方法を紹介します。

これにより、サイトのセキュリティを強化し、安全な運営を実現するための知識を提供します。

目次から探す

WordPressのログインURLを変更する理由

WordPressは非常に人気のあるCMS(コンテンツ管理システム)であり、その使いやすさから多くのウェブサイトで利用されています。

しかし、その人気ゆえに、WordPressのログインページはハッカーや悪意のある攻撃者の標的になりやすいです。

ここでは、WordPressのログインURLを変更する理由について詳しく説明します。

セキュリティの向上

最も重要な理由の一つは、セキュリティの向上です。

デフォルトのログインURL(wp-login.php)は広く知られているため、攻撃者はこのURLを利用してブルートフォース攻撃を試みることができます。

ログインURLを変更することで、攻撃者がログインページにアクセスするのを難しくし、セキュリティを強化することができます。

不正アクセスの防止

ログインURLを変更することで、不正アクセスのリスクを減少させることができます。

特に、管理者や重要なユーザーのアカウントが狙われることが多いため、ログインURLを隠すことは有効な対策となります。

これにより、攻撃者がログインページを見つけるのが難しくなり、アカウントの安全性が向上します。

スパムやボットからの保護

多くのスパムボットは、デフォルトのログインURLを利用して自動的にログインを試みます。

ログインURLを変更することで、これらのボットからの攻撃を防ぎ、サイトのパフォーマンスを向上させることができます。

ボットによる不正なログイン試行が減少することで、サーバーへの負荷も軽減されます。

以上の理由から、WordPressのログインURLを変更することは、セキュリティが向上する重要な施策です。

次のセクションでは、具体的な変更方法について詳しく見ていきます。

functions.phpの編集

プラグイン無しでWordPressのログインURLを変更するためには、テーマのfunctions.phpファイルを編集する必要があります。

このセクションでは、テーマファイルエディターへのアクセス方法から、必要なコードの追記、確認方法、カスタマイズのポイントまで詳しく説明します。

テーマファイルエディターへのアクセス

管理画面メニューからの手順

まず、WordPressの管理画面にログインします。

左側のメニューから「外観」を選択し、その中の「テーマファイルエディター」をクリックします。

この操作により、現在使用しているテーマのファイルにアクセスできるようになります。

使用中のテーマの選択

テーマファイルエディターに移動したら、画面の右側に表示されるテーマの一覧から、現在使用中のテーマを選択します。

特に、子テーマを使用している場合は、子テーマを選択することをお勧めします。

これにより、親テーマのアップデートによる変更の上書きを避けることができます。

functions.phpの編集

追記するコードの説明

functions.phpファイルは、テーマの機能を拡張するための重要なファイルです。

このファイルに特定のコードを追記することで、WordPressのログインURLを変更することができます。

以下に示すコードは、ログインURLをカスタマイズし、セキュリティを強化するためのものです。

コードの具体例

以下のコードをfunctions.phpに追記します。

このコードは、ログインURLを変更し、特定の条件を満たさない場合には403エラーを返すように設定されています。

// ここでログイン画面へのURLを指定する
define( 'LOGIN_CHANGE_PAGE', 'wp-login-test' );

// オリジナルのログインURL以外は403エラー
if ( ! function_exists( 'wp_login_url_403_error' ) ) {
    function wp_login_url_403_error() {
        if ( strpos( $_SERVER['REQUEST_URI'], 'wp-login.php' ) !== false && strpos( $_SERVER['REQUEST_URI'], LOGIN_CHANGE_PAGE ) === false ) {
            status_header( 403 );
            exit;
        }
    }
}
add_action( 'login_init', 'wp_login_url_403_error' );

// 新しいログインURLを処理する
if ( ! function_exists( 'wp_login_change_page' ) ) {
    function wp_login_change_page() {
        $request = $_SERVER['REQUEST_URI'];
        $login_page = '/' . LOGIN_CHANGE_PAGE;

        if ( $request == $login_page || strpos( $request, $login_page . '?' ) === 0 ) {
            global $user_login, $error;
            $user_login = '';
            $error = '';

            require_once( ABSPATH . 'wp-login.php' );
            exit;
        }
    }
}
add_action( 'init', 'wp_login_change_page' );

// ログインURLを変更する
if ( ! function_exists( 'wp_login_change_site_url' ) ) {
    function wp_login_change_site_url( $url, $path, $orig_scheme, $blog_id ) {
        if ( ( $path == 'wp-login.php' || preg_match( '/wp-login\.php\?action=\w+/', $path ) ) &&
            ( is_user_logged_in() || strpos( $_SERVER['REQUEST_URI'], LOGIN_CHANGE_PAGE ) !== false ) ) {
            $url = str_replace( 'wp-login.php', LOGIN_CHANGE_PAGE, $url );
        }
        return $url;
    }
}
add_filter( 'site_url', 'wp_login_change_site_url', 10, 4 );

// ログアウト時のリダイレクト先の設定
if ( ! function_exists( 'wp_logout_redirect_setting' ) ) {
    function wp_logout_redirect_setting( $location, $status ) {
        if ( strpos( $_SERVER['REQUEST_URI'], LOGIN_CHANGE_PAGE ) !== false ) {
            $location = str_replace( 'wp-login.php', LOGIN_CHANGE_PAGE, $location );
        }
        return $location;
    }
}
add_filter( 'wp_redirect', 'wp_logout_redirect_setting', 10, 2 );
?>

追記後の確認方法

コードを追記したら、必ず変更を保存します。

保存後、ブラウザを開いて新しいログインURL(例:https://example.com/wp-login-test)にアクセスしてみてください。

正しく設定されていれば、ログイン画面が表示されるはずです。

また、デフォルトのログインURL(wp-login.php)にアクセスすると、403エラーが表示されることを確認します。

コードのカスタマイズ

上記のコードでは、LOGIN_CHANGE_PAGEの部分を自分の好みに合わせて変更することができます。

// wp-login-testの部分を書き換える
// 必ず ' か " で囲むように!
define( 'LOGIN_CHANGE_PAGE', 'wp-login-test' );

例えば、LOGIN_CHANGE_PAGE__secretとすると、fhttps://example.com/__secretがログインページになります。

これにより、より安全なログインURLを作成することができます。

注意点

functions.phpを編集する際は、必ずバックアップを取ることが重要です。

誤ったコードを追記すると、サイトが正常に動作しなくなる可能性があります。

また、変更後は必ず動作確認を行い、問題がないことを確認してください。

特に、ログインURLを変更した後は、必ず新しいURLでログインできるかを確認することが大切です。

以上の手順を踏むことで、WordPressのログインURL変更後の確認作業をスムーズに行うことができます。

設定が正しく行われていれば不正ログインに強くなって、セキュリティが向上し、より安全にサイトを運営することができるでしょう。

目次から探す