访问wp-admin时如何将多站点子域重定向到404页面?

时间:2013-05-03 16:05:39

标签: wordpress .htaccess subdomain

如何将wp-admin页面限制为子域名?我们在WordPress网站上有多个域名,我需要将subdomain.websitename.php/wp-admin/重定向到404页面。

为此,我使用了这段代码,但它没有重定向。

# wp-admin 404 for subdomains

RewriteCond %{HTTP_HOST} !^(www\.)?websitename.com/wp-admin/$ [NC]
RewriteCond %{HTTP_HOST} ^([^.]+)\.websitename.com/wp-admin/$ [NC]
RewriteRule ^$ /%1.htm [L]

1 个答案:

答案 0 :(得分:0)

创建Must Use plugin,我们将挂钩admin_head并检查特定用户(我相信至少一个人应该能够管理这些网站,对吧?)以及是否是子站点。

如果不满足条件,请执行重定向:

<?php
/**
 * Plugin Name: Block Access to Sub-sites WP-Admin
 * Plugin URI: http://stackoverflow.com/q/16363207/1287812
 * Version: 1.0
 * Author: Rodolfo Buaiz
 * Author URI: http://wordpress.stackexchange.com/users/12615/brasofilo
 */

add_action( 'admin_head', 'b5f_prevent_multisite_wp_admin' );

function b5f_prevent_multisite_wp_admin() 
{
    // Allow access only to one user, adjust the ID bellow
    $current_user = wp_get_current_user();  
    if ( 2 == $current_user->ID ) 
        return;

    // Allow access only to main site WP-Admin
    if( is_main_site() )
        return;

    // User not allowed and site is a sub-site
    // Redirect to front page of current site
    wp_redirect( site_url() );
    die();
}

查看文档以了解函数site_url()network_site_url(),以调整重定向到特定页面(来自子域或主站点)。