如何关闭从‘domain.com/login’到‘domain.com/wp-login.php’的重定向

时间:2014-02-18 作者:marek

我想在“mydomain”下安装与wordpress不同的东西。com/login”,但WordPress会自动将此链接“/login”重定向到“/wp login”。php’。

在哪里可以关闭此重定向?

2 个回复
最合适的回答,由SO网友:s_ha_dum 整理而成

如果你看canonical.php 您会注意到wp_redirect_admin_locations 函数很晚才挂起--at priority 1000. 这意味着redirect_canonical 在这个之前运行。因此,有条件地删除wp_redirect_admin_locationstemplate_redirect

add_action(
  \'template_redirect\', 
  function() {
    $requ = untrailingslashit($_SERVER[\'REQUEST_URI\']);
    if (site_url(\'login\',\'relative\') === $requ ){
      remove_action( \'template_redirect\', \'wp_redirect_admin_locations\', 1000 );
    }
  }
);

SO网友:kraftner

这个答案是基于“login” in permalink redirects to wp-login.php wp3.6

禁用“/登录”重定向,如前所述,相关代码位于wp includes/canonical的最末端。php

你需要remove the default "wp_redirect_admin_locations"replace it with a slightly modified custom version. 将此添加到函数中。php文件。

function custom_wp_redirect_admin_locations() {
    global $wp_rewrite;
    if ( ! ( is_404() && $wp_rewrite->using_permalinks() ) )
        return;

    $admins = array(
        home_url( \'wp-admin\', \'relative\' ),
        home_url( \'dashboard\', \'relative\' ),
        home_url( \'admin\', \'relative\' ),
        site_url( \'dashboard\', \'relative\' ),
        site_url( \'admin\', \'relative\' ),
    );
    if ( in_array( untrailingslashit( $_SERVER[\'REQUEST_URI\'] ), $admins ) ) {
        wp_redirect( admin_url() );
        exit;
    }

    $logins = array(
        home_url( \'wp-login.php\', \'relative\' )
    );
    if ( in_array( untrailingslashit( $_SERVER[\'REQUEST_URI\'] ), $logins ) ) {
        wp_redirect( site_url( \'wp-login.php\', \'login\' ) );
        exit;
    }
}

function remove_default_login_redirect() {
    remove_action(\'template_redirect\', \'wp_redirect_admin_locations\', 1000);
    add_action( \'template_redirect\', \'custom_wp_redirect_admin_locations\', 1000 );
}

add_action(\'init\',\'remove_default_login_redirect\');
为什么这可能没有必要呢?您还应该知道,只有在/登录时没有其他内容时,重定向才适用。例如,一旦您创建页面/登录,重定向将不再适用。(请参阅wp includes/canonical.php:553了解发生这种情况的位置。

结束

相关推荐

WordPress无法打开主题-editor.php

我有一个网站RadhanathSwami。信息。我使用“RadhanathSwami.info/wp admin”登录为管理员。然后我尝试了“radhanathswami.info/wp-admin/theme-editor.php” You do not have sufficient permissions to access this page. 我不知道该怎么办。我在google上搜索了很多,但没有多少帮助。我没有访问服务器的权限不是ftp。我所能做的就是从管理仪表板。我使用的是主题滨