隱藏並替換 WordPress 管理路徑
修改網站的管理路徑可以是是/admin-123/,當然,這裏可以自定義,那如何實現將/wp-admin/ 修改成 /admin-123/這樣的方式呢?這不是重定向,我們將完全改變默認管理員路徑到儀表盤。 let's do it!
隱藏 WordPress 管理路徑
首先將下面的代碼複製到你的 wp-config.php 文件中:
- define('WP_ADMIN_DIR', 'admin-panel');
- define( 'ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR);
然後將下面這些代碼放到你的 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);
- }
OK,最後添加如下規則到.htaccess 裏就搞定。
- RewriteRule ^admin-panel/(.*) wp-admin/$1?%{QUERY_STRING} [L]
如果是 nginx 的服務器則添加下面的到你的配置文件:
- rewrite ^/admin-panel/(.*) /wp-admin/$1?$args last;
現在你可以訪問管理面板了:http://www. 你的域名.com/admin-panel/ 是不是非常的簡單呢?
當然這並沒有完成,我們還得限制 wp-admin 這個路徑。
限制 wp-admin 路徑訪問
下面的代碼會將所有的/wp-admin/ URL 請求到你的 404.php 錯誤頁面,將代碼放置到你主題的 functions.php 文件中:
- add_action('login_form','redirect_wp_admin');
- function redirect_wp_admin(){
- $redirect_to = $_SERVER['REQUEST_URI'];
- if(count($_REQUEST)> 0 && array_key_exists('redirect_to', $_REQUEST)){
- $redirect_to = $_REQUEST['redirect_to'];
- $check_wp_admin = stristr($redirect_to, 'wp-admin');
- if($check_wp_admin){
- wp_safe_redirect( '404.php' );
- }
- }
- }
當然這裏的 404.php 你可以改成 404.html , 更多後續功能大家可以去嘗試