隱藏並替換 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 , 更多後續功能大家可以去嘗試