diff --git src/wp-admin/includes/schema.php src/wp-admin/includes/schema.php
index 296a699..634f9a8 100644
--- src/wp-admin/includes/schema.php
+++ src/wp-admin/includes/schema.php
@@ -397,7 +397,7 @@ function populate_options() {
 	'links_updated_date_format' => __('F j, Y g:i a'),
 	'comment_moderation' => 0,
 	'moderation_notify' => 1,
-	'permalink_structure' => '',
+	'permalink_structure' => '/%year%/%monthnum%/%day%/%postname%/',
 	'gzipcompression' => 0,
 	'hack_file' => 0,
 	'blog_charset' => 'UTF-8',
@@ -495,7 +495,6 @@ function populate_options() {
 	if ( is_multisite() ) {
 		/* translators: blog tagline */
 		$options[ 'blogdescription' ] = sprintf(__('Just another %s site'), get_current_site()->site_name );
-		$options[ 'permalink_structure' ] = '/%year%/%monthnum%/%day%/%postname%/';
 	}
 
 	// Set autoload to no for these options
diff --git src/wp-admin/includes/upgrade.php src/wp-admin/includes/upgrade.php
index b72303a..9524076 100644
--- src/wp-admin/includes/upgrade.php
+++ src/wp-admin/includes/upgrade.php
@@ -87,6 +87,8 @@ function wp_install( $blog_title, $user_name, $user_email, $public, $deprecated
 
 	wp_install_defaults($user_id);
 
+	wp_install_verify_pretty_permalinks();
+
 	flush_rewrite_rules();
 
 	wp_new_blog_notification($blog_title, $guessurl, $user_id, ($email_password ? $user_password : __('The password you chose during the install.') ) );
@@ -260,6 +262,37 @@ As a new WordPress user, you should go to <a href=\"%s\">your dashboard</a> to d
 }
 endif;
 
+if ( !function_exists('wp_install_verify_pretty_permalinks') ) :
+/**
+ * Verify pretty permalinks.
+ *
+ * This function will verify that pretty permalinks work. 
+ * If pretty permalinks fail to work, the web-server will fall 
+ * back to ugly permalinks by setting an empty permalink structure.
+ *
+ * @since 4.2.0
+ *
+ * @return void
+ */
+function wp_install_verify_pretty_permalinks() {
+	global $wp_rewrite;
+	// Flush rules with the hard option to force refresh of the web-server's
+	// rewrite config file (e.g. .htaccess or web.config).
+	$wp_rewrite->flush_rules( true );
+
+	// Send a HEAD request to a random page on the site,
+	// and check whether the 'x-pingback' header is returned as expected.
+	$response = wp_remote_get( site_url( '/some-random-404-page/' ) );
+	$x_pingback_header = wp_remote_retrieve_header( $response, 'x-pingback' );
+	$pretty_permalinks = $x_pingback_header && $x_pingback_header === get_bloginfo( 'pingback_url' );
+
+	// Set an empty permalink structure to make it ugly again.
+	if ( ! $pretty_permalinks ) {
+		$wp_rewrite->set_permalink_structure('');
+	}
+}
+endif;
+
 if ( !function_exists('wp_new_blog_notification') ) :
 /**
  * {@internal Missing Short Description}}
