WordPress.org

Make WordPress Core

Ticket #15165: ms-settings.patch

File ms-settings.patch, 1.6 KB (added by M_Olivier, 3 years ago)
  • ms-settings.php

     
    4646 
    4747        $path = preg_replace( '|([a-z0-9-]+.php.*)|', '', $_SERVER['REQUEST_URI'] ); 
    4848        $path = str_replace ( '/wp-admin/', '/', $path ); 
    49         $path = preg_replace( '|(/[a-z0-9-]+?/).*|', '$1', $path ); 
     49        $path = rtrim( str_replace( '?' . $_SERVER[ 'QUERY_STRING' ], '', $path ), '/' ) . '/'; 
    5050 
     51        if ( !is_subdomain_install() ) 
     52        { 
     53                $blogname = htmlspecialchars( ltrim( $path, '/' ) ); 
     54                if ( false !== strrpos( $blogname, '/' ) ) 
     55                        $blogname = substr( $blogname, 0, strrpos( $blogname, '/' ) ); 
     56        } 
     57 
    5158        $current_site = wpmu_current_site(); 
    5259        if ( ! isset( $current_site->blog_id ) ) 
    5360                $current_site->blog_id = $wpdb->get_var( $wpdb->prepare( "SELECT blog_id FROM $wpdb->blogs WHERE domain = %s AND path = %s", $current_site->domain, $current_site->path ) ); 
     
    6471                else 
    6572                        $blogname = substr( $domain, 0, strpos( $domain, '.' ) ); 
    6673        } else { 
    67                 $blogname = htmlspecialchars( substr( $_SERVER[ 'REQUEST_URI' ], strlen( $path ) ) ); 
    68                 if ( false !== strpos( $blogname, '/' ) ) 
    69                         $blogname = substr( $blogname, 0, strpos( $blogname, '/' ) ); 
    70                 if ( false !== strpos( $blogname, '?' ) ) 
    71                         $blogname = substr( $blogname, 0, strpos( $blogname, '?' ) ); 
    7274                $reserved_blognames = array( 'page', 'comments', 'blog', 'wp-admin', 'wp-includes', 'wp-content', 'files', 'feed' ); 
    7375                if ( $blogname != '' && ! in_array( $blogname, $reserved_blognames ) && ! is_file( $blogname ) ) 
    7476                        $path .= $blogname . '/';