Index: src/wp-includes/canonical.php
IDEA additional info:
Subsystem: com.intellij.openapi.diff.impl.patch.CharsetEP
<+>UTF-8
===================================================================
--- src/wp-includes/canonical.php	(revision 79cfdbd84c3fe9eaf8befa8c18e6abc3d22a55f7)
+++ src/wp-includes/canonical.php	(revision )
@@ -388,8 +388,16 @@
 	else
 		unset($redirect['port']);
 
-	// trailing /index.php
-	$redirect['path'] = preg_replace('|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path']);
+	// Redirect can be missing path key caused by failed (and suppressed) parse_url calls.
+	if ( empty( $redirect['path'] ) ) {
+		$redirect['path'] = '';
+	}
+
+	// We don't need to initiate a regular expression call if the path is empty.
+	if ( ! empty( $redirect['path'] ) ) {
+		// trailing /index.php
+		$redirect['path'] = preg_replace( '|/' . preg_quote( $wp_rewrite->index, '|' ) . '/*?$|', '/', $redirect['path'] );
+	}
 
 	$punctuation_pattern = implode( '|', array_map( 'preg_quote', array(
 		' ', '%20',       // space
