隐藏 wp-admin 使用 htaccess

tar*_*ula 2 wordpress

我想使用.htaccess文件将wp-admin更改为admin_panel,访问链接admin_panel时,显示wp-admin的内容,但是访问链接wp-admin时,会提示找不到

# BEGIN WordPress
<IfModule mod_rewrite.c>
RewriteEngine On
RewriteBase /cms/wp/
RewriteRule ^index\.php$ - [L]
RewriteRule ^admin_panel/(.*) /cms/wp/wp-admin/$1 [QSA,L]
RewriteRule ^wp-admin /cms/wp/nothing_404_404 [QSA,L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /cms/wp/index.php [L]
</IfModule>

# END WordPress
Run Code Online (Sandbox Code Playgroud)

它不起作用,所有 url wp-admin 或 admin_panel 结果都没有找到。

小智 5

我不知道您为什么只尝试使用 .htaccess 文件来完成此操作,但让我向您展示更改管理目录的正确方法。

如果您希望仅使用 .htaccess 文件完成它的特定原因,请告诉我,但我什至不确定是否可能。

脚步:

  1. 将常量添加到 wp-confing.php

    define('WP_ADMIN_DIR', '**admin_panel**');
    define('ADMIN_COOKIE_PATH', SITECOOKIEPATH . WP_ADMIN_DIR); 
    
    Run Code Online (Sandbox Code Playgroud)
  2. 将以下过滤器添加到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);   
    }
    
    Run Code Online (Sandbox Code Playgroud)
  3. 将以下行添加到 .htaccess 文件

    RewriteRule ^admin_panel/(.*) wp-admin/$1?%{QUERY_STRING} [L]
    
    Run Code Online (Sandbox Code Playgroud)

你已经完成了。

现在,您的管理URL会像:http://www.yourdomain.com/ admin_panel /

希望这有帮助。