There’s a thread about this on the WordPress forums:
The original article has three steps:
(1) Add constant to wp-config.php
define('WP_ADMIN_DIR', 'secret-folder');
define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);
(2) Add this filter to functions.php
add_filter('site_url', 'wpadmin_filter', 10, 3);
function wpadmin_filter( $url, $path, $orig_scheme ) {
$old = array( "/(wp-admin)/");
$admin_dir = WP_ADMIN_DIR;
$new = array($admin_dir);
return preg_replace( $old, $new, $url, 1);
}
(3) Add this line to .htaccess on your server
RewriteRule ^secret-folder/(.*) wp-admin/$1?%{QUERY_STRING} [L]
With these steps taken, your admin URL will be: http://www.yourdomain.com/secret-folder/