如何使wp-login.php不可访问

时间:2013-09-17 作者:Wannabe

我已成功使wp admin无法访问(重定向到404页),以下是我的函数文件中的代码:

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);
}


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\' );
        }
    }
} 
以及htaccess:

RewriteRule ^controlpanel/(.*) wp-admin/$1?%{QUERY_STRING} [L]
现在令人困惑的是,我不知道如何为wp登录做同样的事情。php。从“wp login.php”更改为“access”是可行的,但当wp登录时。php类型,仍然可以访问

下面是函数文件中的代码:

add_filter(\'site_url\',  \'wplogin_filter\', 10, 3);

function wplogin_filter( $url, $path, $orig_scheme )
{
 $old  = array( "/(wp-login\\.php)/");
 $new  = array( "access");
 return preg_replace( $old, $new, $url, 1);
}
htaccess文件:

RewriteRule ^access$ wp-login.php
所以,我的问题是如何让wp登录。php不可访问(重定向到404页或任何内容)?

非常感谢您的回答:)

提前非常感谢

2 个回复
SO网友:cybmeta

而不是过滤site_url 您应该进行筛选adim_urllogin_url

add_filter(\'admin_url\', \'new_admin_url\');

function new_admin_url()
{
    // Insert the new URL here:
    return get_bloginfo(\'url\').\'/controlpanel/\';
}

add_filter( \'login_url\', \'new_login_url\', 10, 2 );
function new_login_url( $login_url, $redirect ) {
    return get_bloginfo(\'url\').\'/access/\';
}
并结合中的重写规则和重定向。htaccess。例如,对于wp登录。php(我不是mod\\u重写专家,因此很可能下一个代码不起作用或需要一些修改):

// Internal Rewrite from access to wp-login
RewriteRule ^access(.*)$ wp-login.php$1 [NC,L]

// Real redirection from wp-login to access appending the query string
RewriteCond %{REQUEST_URI} ^wp-login.*
RewriteRule ^ access$ [R=301,NC,QSA,L]

SO网友:Edward

您可以使用操作login_form 让这一页消失吧。我想这是最简单有效的方法

结束

相关推荐

在不干扰wp-login.php的情况下创建前端用户注册/登录/配置文件和注销?

我需要在我的主页上创建注册和登录链接用户可以对他们可以更新的个人资料以及发布到数据库的内容进行测试。如何在不干扰wp登录的情况下执行此操作所有这些都需要在前端完成。