How to disable Multisite sign-up page?

If we try to access a non-existant Multisite site, e.g., http://site1.example.com or http://example.com/site1/, we are redirected to http://example.com/wp-signup.php?new=site1.

How to block this and redirect the browser to another page?

Related posts

Leave a Reply

3 comments

  1. [Update]

    An alternative (maybe better) is to use the following constant in wp-config.php:

    define( 'NOBLOGREDIRECT', 'http://example.com' );
    

    At the very beginning of wp-signup.php file there is this code:

    function do_signup_header() {
        do_action( 'signup_header' );
    }
    add_action( 'wp_head', 'do_signup_header' );
    

    So, it’s just a matter of adding the signup_header action hook to break any further execution and redirect the browser to other URL.

    Here, wrapped as a Must Use Plugin:

    <?php
    /*
        Plugin Name: Multisite - Prevent Sign-up Page
        Plugin Url: http://wordpress.stackexchange.com/q/85529/12615
        Version: 1.0
        Author: Rodolfo Buaiz
    */
    
    add_action( 'signup_header', 'rbz_prevent_multisite_signup' );
    
    function rbz_prevent_multisite_signup() 
    {
        wp_redirect( site_url() );
        die();
    }
    
  2. Simply add the following to wp-content/mu-plugins/disable-signups.php:

    <?php
    remove_action( 'wp_head', 'do_signup_header' );
    

    The signup page will now say:

    Registration has been disabled.