隐藏并替换 WordPress 管理路径

修改网站的管理路径可以是是/admin-123/,当然,这里可以自定义,那如何实现将/wp-admin/ 修改成 /admin-123/这样的方式呢?这不是重定向,我们将完全改变默认管理员路径到仪表盘。 let's do it!

隐藏 WordPress 管理路径

首先将下面的代码复制到你的 wp-config.php 文件中:

  1. define('WP_ADMIN_DIR', 'admin-panel');
  2. define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);

然后将下面这些代码放到你的 functions.php 文件里:

  1. add_filter('site_url',  'wpadmin_filter', 10, 3);
  2.  function wpadmin_filter( $url$path$orig_scheme ) {
  3.   $old  = array"/(wp-admin)/");
  4.   $admin_dir = WP_ADMIN_DIR;
  5.   $new  = array($admin_dir);
  6.   return preg_replace( $old$new$url, 1);
  7.  }

OK,最后添加如下规则到.htaccess 里就搞定。

  1. RewriteRule ^admin-panel/(.*) wp-admin/$1?%{QUERY_STRING} 
    [L]

如果是 nginx 的服务器则添加下面的到你的配置文件:

  1. rewrite ^/admin-panel/(.*) /wp-admin/$1?$args last;

现在你可以访问管理面板了:http://www. 你的域名.com/admin-panel/ 是不是非常的简单呢?

当然这并没有完成,我们还得限制 wp-admin 这个路径。

限制 wp-admin 路径访问

下面的代码会将所有的/wp-admin/ URL 请求到你的 404.php 错误页面,将代码放置到你主题的 functions.php 文件中:

  1. add_action('login_form','redirect_wp_admin');
  2. function redirect_wp_admin(){
  3. $redirect_to = $_SERVER['REQUEST_URI'];
  4. if(count($_REQUEST)> 0 && array_key_exists('redirect_to', $_REQUEST)){
  5. $redirect_to = $_REQUEST['redirect_to'];
  6. $check_wp_admin = stristr($redirect_to, 'wp-admin');
  7. if($check_wp_admin){
  8. wp_safe_redirect( '404.php' );
  9. }
  10. }
  11. }

当然这里的 404.php 你可以改成 404.html , 更多后续功能大家可以去尝试