Ticket #19796: 19796.2.diff
File 19796.2.diff, 24.5 KB (added by , 12 years ago) |
---|
-
wp-admin/network.php
function network_domain_check() { 51 51 * @return bool Whether subdomain install is allowed 52 52 */ 53 53 function allow_subdomain_install() { 54 $domain = preg_replace( '|https?://([^/]+)|', '$1', get_option( ' siteurl' ) );55 if( false !== strpos( $domain, '/' ) || 'localhost' == $domain || preg_match( '|[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+|', $domain ) )54 $domain = preg_replace( '|https?://([^/]+)|', '$1', get_option( 'home' ) ); 55 if( parse_url( get_option( 'home' ), PHP_URL_PATH ) || 'localhost' == $domain || preg_match( '|^[0-9]+\.[0-9]+\.[0-9]+\.[0-9]+$|', $domain ) ) 56 56 return false; 57 57 58 58 return true; … … include( ABSPATH . 'wp-admin/admin-header.php' ); 144 144 function network_step1( $errors = false ) { 145 145 global $is_apache; 146 146 147 if ( get_option( 'siteurl' ) != get_option( 'home' ) ) {148 echo '<div class="error"><p><strong>' . __('ERROR:') . '</strong> ' . sprintf( __( 'Your <strong>WordPress address</strong> must match your <strong>Site address</strong> before creating a Network. See <a href="%s">General Settings</a>.' ), esc_url( admin_url( 'options-general.php' ) ) ) . '</p></div>';149 echo '</div>';150 include ( ABSPATH . 'wp-admin/admin-footer.php' );151 die();152 }153 154 147 if ( defined('DO_NOT_UPGRADE_GLOBAL_TABLES') ) { 155 148 echo '<div class="error"><p><strong>' . __('ERROR:') . '</strong> ' . __( 'The constant DO_NOT_UPGRADE_GLOBAL_TABLES cannot be defined when creating a network.' ) . '</p></div>'; 156 149 echo '</div>'; … … function network_step1( $errors = false ) { 314 307 * @since 3.0.0 315 308 */ 316 309 function network_step2( $errors = false ) { 317 global $base, $wpdb; 318 $hostname = get_clean_basedomain(); 310 global $wpdb; 319 311 320 if ( ! isset( $base ) ) 321 $base = trailingslashit( stripslashes( dirname( dirname( $_SERVER['SCRIPT_NAME'] ) ) ) ); 312 $hostname = get_clean_basedomain(); 313 $slashed_home = trailingslashit( get_option( 'home' ) ); 314 $slashed_siteurl = trailingslashit( get_option( 'siteurl' ) ); 315 $wp_siteurl_subdir = '/' . str_replace( $slashed_home, '', $slashed_siteurl ); 316 $rewrite_base = ! empty( $wp_siteurl_subdir ) ? ltrim( trailingslashit( $wp_siteurl_subdir ), '/' ) : ''; 317 $base = parse_url( $slashed_home, PHP_URL_PATH ); 322 318 323 319 // Wildcard DNS message. 324 320 if ( is_wp_error( $errors ) ) … … function network_step2( $errors = false ) { 344 340 } 345 341 } 346 342 343 $subdir_match = $subdomain_install ? '' : '(?:[_0-9a-zA-Z-]+/)?'; 344 $subdir_replacement = $subdomain_install ? '' : '$1'; 345 347 346 if ( $_POST || ! is_multisite() ) { 348 347 ?> 349 348 <h3><?php esc_html_e( 'Enabling the Network' ); ?></h3> … … function network_step2( $errors = false ) { 364 363 <textarea class="code" readonly="readonly" cols="100" rows="7"> 365 364 define('MULTISITE', true); 366 365 define('SUBDOMAIN_INSTALL', <?php echo $subdomain_install ? 'true' : 'false'; ?>); 367 $base = '<?php echo $base; ?>';368 366 define('DOMAIN_CURRENT_SITE', '<?php echo $hostname; ?>'); 369 367 define('PATH_CURRENT_SITE', '<?php echo $base; ?>'); 370 368 define('SITE_ID_CURRENT_SITE', 1); 371 define('BLOG_ID_CURRENT_SITE', 1);</textarea> 369 define('BLOG_ID_CURRENT_SITE', 1); 370 <?php if ( $wp_siteurl_subdir ): ?> 371 define('WP_SITEURL_SUBDIR', '<?php echo $wp_siteurl_subdir; ?>'); 372 <?php endif; // $wp_siteurl_subdir ?> 373 </textarea> 372 374 <?php 373 375 $keys_salts = array( 'AUTH_KEY' => '', 'SECURE_AUTH_KEY' => '', 'LOGGED_IN_KEY' => '', 'NONCE_KEY' => '', 'AUTH_SALT' => '', 'SECURE_AUTH_SALT' => '', 'LOGGED_IN_SALT' => '', 'NONCE_SALT' => '' ); 374 376 foreach ( $keys_salts as $c => $v ) { 375 377 if ( defined( $c ) ) 376 378 unset( $keys_salts[ $c ] ); 377 379 } 380 378 381 if ( ! empty( $keys_salts ) ) { 379 382 $keys_salts_str = ''; 380 383 $from_api = wp_remote_get( 'https://api.wordpress.org/secret-key/1.1/salt/' ); … … define('BLOG_ID_CURRENT_SITE', 1);</textarea> 399 402 </li> 400 403 <?php 401 404 if ( iis7_supports_permalinks() ) : 405 // IIS doesn't support RewriteBase, all your RewriteBase are belong to us 406 $iis_subdir_match = ltrim( $base, '/' ) . $subdir_match; 407 $iis_rewrite_base = ltrim( $base, '/' ) . $rewrite_base; 408 $iis_subdir_replacement = $subdomain_install ? '' : '{R:1}'; 402 409 403 if ( $subdomain_install ) { 404 $web_config_file = 405 '<?xml version="1.0" encoding="UTF-8"?> 410 $web_config_file = <<<EOF 411 <?xml version="1.0" encoding="UTF-8"?> 406 412 <configuration> 407 413 <system.webServer> 408 414 <rewrite> … … define('BLOG_ID_CURRENT_SITE', 1);</textarea> 414 420 if ( is_multisite() && get_site_option( 'ms_files_rewriting' ) ) { 415 421 $web_config_file .= ' 416 422 <rule name="WordPress Rule for Files" stopProcessing="true"> 417 <match url="^ files/(.+)" ignoreCase="false" />418 <action type="Rewrite" url=" wp-includes/ms-files.php?file={R:1}" appendQueryString="false" />423 <match url="^{$iis_subdir_match}files/(.+)" ignoreCase="false" /> 424 <action type="Rewrite" url="{$iis_rewrite_base}wp-includes/ms-files.php?file={R:1}" appendQueryString="false" /> 419 425 </rule>'; 420 426 } 421 427 $web_config_file .= ' 422 428 <rule name="WordPress Rule 2" stopProcessing="true"> 423 <match url="^" ignoreCase="false" /> 424 <conditions logicalGrouping="MatchAny"> 425 <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" /> 426 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" /> 427 </conditions> 428 <action type="None" /> 429 </rule> 430 <rule name="WordPress Rule 3" stopProcessing="true"> 431 <match url="." ignoreCase="false" /> 432 <action type="Rewrite" url="index.php" /> 433 </rule> 434 </rules> 435 </rewrite> 436 </system.webServer> 437 </configuration>'; 438 } else { 439 $web_config_file = 440 '<?xml version="1.0" encoding="UTF-8"?> 441 <configuration> 442 <system.webServer> 443 <rewrite> 444 <rules> 445 <rule name="WordPress Rule 1" stopProcessing="true"> 446 <match url="^index\.php$" ignoreCase="false" /> 447 <action type="None" /> 448 </rule>'; 449 if ( is_multisite() && get_site_option( 'ms_files_rewriting' ) ) { 450 $web_config_file .= ' 451 <rule name="WordPress Rule for Files" stopProcessing="true"> 452 <match url="^files/(.+)" ignoreCase="false" /> 453 <action type="Rewrite" url="wp-includes/ms-files.php?file={R:1}" appendQueryString="false" /> 454 </rule>'; 455 } 456 $web_config_file .= ' 457 <rule name="WordPress Rule 2" stopProcessing="true"> 458 <match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" /> 459 <action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" /> 429 <match url="^{$iis_subdir_match}wp-admin$" ignoreCase="false" /> 430 <action type="Redirect" url="{$iis_subdir_replacement}wp-admin/" redirectType="Permanent" /> 460 431 </rule> 461 432 <rule name="WordPress Rule 3" stopProcessing="true"> 462 433 <match url="^" ignoreCase="false" /> … … define('BLOG_ID_CURRENT_SITE', 1);</textarea> 467 438 <action type="None" /> 468 439 </rule> 469 440 <rule name="WordPress Rule 4" stopProcessing="true"> 470 <match url="^ [_0-9a-zA-Z-]+/(wp-(content|admin|includes).*)" ignoreCase="false" />471 <action type="Rewrite" url="{ R:1}" />441 <match url="^{$iis_subdir_match}(wp-(content|admin|includes).*)" ignoreCase="false" /> 442 <action type="Rewrite" url="{$iis_rewrite_base}{R:1}" /> 472 443 </rule> 473 444 <rule name="WordPress Rule 5" stopProcessing="true"> 474 <match url="^ ([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" />475 <action type="Rewrite" url="{ R:2}" />445 <match url="^{$iis_subdir_match}([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" /> 446 <action type="Rewrite" url="{$iis_rewrite_base}{R:2}" /> 476 447 </rule> 477 448 <rule name="WordPress Rule 6" stopProcessing="true"> 478 449 <match url="." ignoreCase="false" /> … … define('BLOG_ID_CURRENT_SITE', 1);</textarea> 481 452 </rules> 482 453 </rewrite> 483 454 </system.webServer> 484 </configuration>'; 485 } 455 </configuration> 456 EOF; 457 486 458 ?> 487 <li><p><?php printf( __( 'Add the following to your <code>web.config</code> file in <code>%s</code>, replacing other WordPress rules:' ), ABSPATH); ?></p>459 <li><p><?php printf( __( 'Add the following to your <code>web.config</code> file in <code>%s</code>, replacing other WordPress rules:' ), trailingslashit( str_replace( trailingslashit( $wp_siteurl_subdir ), '', ABSPATH ) ) ); ?></p> 488 460 <?php 489 461 if ( ! $subdomain_install && WP_CONTENT_DIR != ABSPATH . 'wp-content' ) 490 462 echo '<p><strong>' . __('Warning:') . ' ' . __( 'Subdirectory networks may not be fully compatible with custom wp-content directories.' ) . '</strong></p>'; … … define('BLOG_ID_CURRENT_SITE', 1);</textarea> 495 467 496 468 <?php else : // end iis7_supports_permalinks(). construct an htaccess file instead: 497 469 498 $htaccess_file = 'RewriteEngine On 499 RewriteBase ' . $base . ' 500 RewriteRule ^index\.php$ - [L]' . "\n"; 501 470 $ms_files_rewriting = ''; 502 471 if ( is_multisite() && get_site_option( 'ms_files_rewriting' ) ) { 503 $ htaccess_file .= "\n# uploaded files\nRewriteRule ^";504 $ htaccess_file .= ( $subdomain_install ? '' : '([_0-9a-zA-Z-]+/)?' ) . 'files/(.+) wp-includes/ms-files.php?file=$' . ( $subdomain_install ? 1 : 2 ) . '[L]' . "\n";472 $ms_files_rewriting = "\n# uploaded files\nRewriteRule ^"; 473 $ms_files_rewriting .= $subdir_match . 'files/(.+) wp-includes/ms-files.php?file=$1 [L]' . "\n"; 505 474 } 506 475 507 if ( ! $subdomain_install ) 508 $htaccess_file .= "\n# add a trailing slash to /wp-admin\n" . 'RewriteRule ^([_0-9a-zA-Z-]+/)?wp-admin$ $1wp-admin/ [R=301,L]' . "\n"; 476 $htaccess_file = <<<EOF 477 RewriteEngine On 478 RewriteBase {$base} 479 RewriteRule ^index\.php$ - [L] 480 {$ms_files_rewriting} 481 # add a trailing slash to /wp-admin 482 RewriteRule ^{$subdir_match}wp-admin$ {$subdir_replacement}wp-admin/ [R=301,L] 509 483 510 $htaccess_file .= "\n" . 'RewriteCond %{REQUEST_FILENAME} -f [OR]484 RewriteCond %{REQUEST_FILENAME} -f [OR] 511 485 RewriteCond %{REQUEST_FILENAME} -d 512 RewriteRule ^ - [L]'; 513 514 // @todo custom content dir. 515 if ( ! $subdomain_install ) 516 $htaccess_file .= "\nRewriteRule ^[_0-9a-zA-Z-]+/(wp-(content|admin|includes).*) $1 [L]\nRewriteRule ^[_0-9a-zA-Z-]+/(.*\.php)$ $1 [L]"; 517 518 $htaccess_file .= "\nRewriteRule . index.php [L]"; 486 RewriteRule ^ - [L] 487 RewriteRule ^{$subdir_match}(wp-(content|admin|includes).*) {$rewrite_base}$1 [L] 488 RewriteRule ^{$subdir_match}(.*\.php)$ {$rewrite_base}$1 [L] 489 RewriteRule . index.php [L] 490 EOF; 519 491 520 492 ?> 521 493 <li><p><?php printf( __( 'Add the following to your <code>.htaccess</code> file in <code>%s</code>, replacing other WordPress rules:' ), ABSPATH ); ?></p> … … RewriteRule ^ - [L]'; 537 509 538 510 if ( $_POST ) { 539 511 540 $base = trailingslashit( stripslashes( dirname( dirname( $_SERVER['SCRIPT_NAME'] ) ) ) );541 542 512 check_admin_referer( 'install-network-1' ); 543 513 544 514 require_once( ABSPATH . 'wp-admin/includes/upgrade.php' ); 545 515 // create network tables 546 516 install_network(); 547 $ hostname = get_clean_basedomain();517 $base = parse_url( trailingslashit( get_option( 'home' ) ), PHP_URL_PATH ); 548 518 $subdomain_install = allow_subdomain_install() ? !empty( $_POST['subdomain_install'] ) : false; 549 519 if ( ! network_domain_check() ) { 550 520 $result = populate_network( 1, get_clean_basedomain(), sanitize_email( $_POST['email'] ), stripslashes( $_POST['sitename'] ), $base, $subdomain_install ); -
wp-admin/network/site-new.php
if ( isset($_REQUEST['action']) && 'add-site' == $_REQUEST['action'] ) { 62 62 63 63 if ( is_subdomain_install() ) { 64 64 $newdomain = $domain . '.' . preg_replace( '|^www\.|', '', $current_site->domain ); 65 $path = $base;65 $path = $current_site->path; 66 66 } else { 67 67 $newdomain = $current_site->domain; 68 $path = $base. $domain . '/';68 $path = $current_site->path . $domain . '/'; 69 69 } 70 70 71 71 $password = 'N/A'; -
wp-includes/canonical.php
function wp_redirect_admin_locations() { 517 517 site_url( 'dashboard', 'relative' ), 518 518 site_url( 'admin', 'relative' ), 519 519 ); 520 if ( in_array( untrailingslashit( $_SERVER['REQUEST_URI'] ), $admins ) ) {520 if ( parse_url( admin_url( '', 'relative' ), PHP_URL_PATH ) !== $_SERVER['REQUEST_URI'] && in_array( untrailingslashit( $_SERVER['REQUEST_URI'] ), $admins ) ) { 521 521 wp_redirect( admin_url() ); 522 522 exit; 523 523 } -
wp-includes/formatting.php
function untrailingslashit($string) { 1355 1355 } 1356 1356 1357 1357 /** 1358 * Removes trailing and leading strings from elements (array), then combines elements 1359 * with a string in between each element. Leading and trailing strings should be 1360 * manually concatenated. 1361 * 1362 * @since 3.5.0 1363 * 1364 * @param array $parts Items to be combined 1365 * @param string $string String to be used to combine items 1366 * @return string Concatenated parts with given strings in between each element. 1367 */ 1368 function join_with_string( $parts, $string ) { 1369 $members = array(); 1370 foreach ( (array) $parts as $part ) { 1371 if ( is_array( $part ) ) { 1372 foreach ( $part as $member ) { 1373 $members[] = trim( $member, $string ); 1374 } 1375 } else { 1376 $members[] = trim( $part, $string ); 1377 } 1378 } 1379 1380 return implode( $string, $members ); 1381 } 1382 1383 /** 1384 * Removes trailing and leading slashes from elements (array or string args), then combines elements 1385 * with a slash in between each element. Leading and trailing slashes should be 1386 * manually concatenated. 1387 * 1388 * @since 3.5.0 1389 * 1390 * @return string Concatenated string with slashes in between each element. 1391 */ 1392 function join_with_slashes() { 1393 $args = func_get_args(); 1394 return join_with_string( $args, '/' ); 1395 } 1396 1397 /** 1358 1398 * Adds slashes to escape strings. 1359 1399 * 1360 1400 * Slashes will first be removed if magic_quotes_gpc is set, see {@link -
wp-includes/functions.php
function get_temp_dir() { 1433 1433 */ 1434 1434 function wp_upload_dir( $time = null ) { 1435 1435 $siteurl = get_option( 'siteurl' ); 1436 $homeurl = get_option( 'home' ); 1437 $baseurl = is_multisite() && defined( 'MULTISITE' ) ? $homeurl : $siteurl; 1436 1438 $upload_path = trim( get_option( 'upload_path' ) ); 1437 1438 if ( empty( $upload_path ) || 'wp-content/uploads' == $upload_path ) { 1439 $upload_path = trim($upload_path); 1440 $main_override = is_multisite() && defined( 'MULTISITE' ) && is_main_site(); 1441 if ( empty($upload_path) || 'wp-content/uploads' == $upload_path ) { 1439 1442 $dir = WP_CONTENT_DIR . '/uploads'; 1440 1443 } elseif ( 0 !== strpos( $upload_path, ABSPATH ) ) { 1441 1444 // $dir is absolute, $upload_path is (maybe) relative to ABSPATH … … function wp_upload_dir( $time = null ) { 1448 1451 if ( empty($upload_path) || ( 'wp-content/uploads' == $upload_path ) || ( $upload_path == $dir ) ) 1449 1452 $url = WP_CONTENT_URL . '/uploads'; 1450 1453 else 1451 $url = trailingslashit( $ siteurl ) . $upload_path;1454 $url = trailingslashit( $baseurl ) . $upload_path; 1452 1455 } 1453 1456 1454 1457 if ( defined( 'UPLOADS' ) ) { 1455 1458 $dir = ABSPATH . UPLOADS; 1456 $url = trailingslashit( $ siteurl ) . UPLOADS;1459 $url = trailingslashit( $baseurl ) . UPLOADS; 1457 1460 } 1458 1461 1459 1462 // Multisite (if not the main site in a post-MU network) -
wp-includes/link-template.php
function site_url( $path = '', $scheme = null ) { 1947 1947 * @return string Site url link with optional path appended. 1948 1948 */ 1949 1949 function get_site_url( $blog_id = null, $path = '', $scheme = null ) { 1950 if ( empty( $blog_id ) || !is_multisite() ) { 1951 $url = get_option( 'siteurl' ); 1950 if ( empty( $blog_id ) ) { 1951 if ( is_multisite() ) 1952 $url = get_option( 'home' ); 1953 else 1954 $url = get_option( 'siteurl' ); 1952 1955 } else { 1953 1956 switch_to_blog( $blog_id ); 1954 $url = get_option( ' siteurl' );1957 $url = get_option( 'home' ); 1955 1958 restore_current_blog(); 1956 1959 } 1957 1960 … … function plugins_url($path = '', $plugin = '') { 2057 2060 else 2058 2061 $url = WP_PLUGIN_URL; 2059 2062 2060 2063 2061 2064 $url = set_url_scheme( $url ); 2062 2065 2063 2066 if ( !empty($plugin) && is_string($plugin) ) { -
wp-includes/ms-functions.php
function wpmu_validate_blog_signup($blogname, $blog_title, $user = '') { 586 586 $mydomain = $blogname . '.' . preg_replace( '|^www\.|', '', $domain ); 587 587 $path = $base; 588 588 } else { 589 $mydomain = "$domain";590 $path = $base.$blogname.'/';589 $mydomain = $domain; 590 $path = '/' . join_with_slashes( $base, $blogname ) . '/'; 591 591 } 592 592 if ( domain_exists($mydomain, $path) ) 593 593 $errors->add('blogname', __('Sorry, that site already exists!')); … … function install_blog($blog_id, $blog_title = '') { 1130 1130 if ( $wpdb->get_results("SELECT ID FROM $wpdb->posts") ) 1131 1131 die( __( '<h1>Already Installed</h1><p>You appear to have already installed WordPress. To reinstall please clear your old database tables first.</p>' ) . '</body></html>' ); 1132 1132 1133 $ url = get_blogaddress_by_id( $blog_id);1133 $homeurl = $siteurl = untrailingslashit( get_blogaddress_by_id( $blog_id ) ); 1134 1134 1135 1135 // Set everything up 1136 1136 make_db_current_silent( 'blog' ); … … function install_blog($blog_id, $blog_title = '') { 1138 1138 populate_roles(); 1139 1139 $wp_roles->_init(); 1140 1140 1141 $url = untrailingslashit( $url ); 1142 1143 update_option( 'siteurl', $url ); 1144 update_option( 'home', $url ); 1141 // Maybe fix url 1142 if ( defined( 'WP_SITEURL_SUBDIR' ) && WP_SITEURL_SUBDIR ) 1143 $siteurl = join_with_slashes( $siteurl, WP_SITEURL_SUBDIR ); 1145 1144 1145 update_option('siteurl', $siteurl); 1146 update_option('home', $homeurl); 1147 update_option('fileupload_url', join_with_slashes( $homeurl, 'files' ) ); 1146 1148 if ( get_site_option( 'ms_files_rewriting' ) ) 1147 1149 update_option( 'upload_path', UPLOADBLOGSDIR . "/$blog_id/files" ); 1148 1150 else 1149 1151 update_option( 'upload_path', get_blog_option( $current_site->blog_id, 'upload_path' ) ); 1152 update_option('blogname', stripslashes( $blog_title ) ); 1153 update_option('admin_email', ''); 1154 $wpdb->update( $wpdb->options, array('option_value' => ''), array('option_name' => 'admin_email') ); 1155 1156 // remove all perms 1157 $wpdb->delete( $wpdb->usermeta, array( 'meta_key' => $table_prefix . 'user_level' ) ); 1158 $wpdb->delete( $wpdb->usermeta, array( 'meta_key' => $table_prefix . 'capabilities' ) ); 1150 1159 1151 1160 update_option( 'blogname', stripslashes( $blog_title ) ); 1152 1161 update_option( 'admin_email', '' ); … … function force_ssl_content( $force = '' ) { 1874 1883 1875 1884 /** 1876 1885 * Formats a URL to use https. 1877 * 1886 * 1878 1887 * Useful as a filter. 1879 1888 * 1880 1889 * @since 2.8.5 -
wp-includes/ms-load.php
function wpmu_current_site() { 142 142 $current_site->id = defined( 'SITE_ID_CURRENT_SITE' ) ? SITE_ID_CURRENT_SITE : 1; 143 143 $current_site->domain = DOMAIN_CURRENT_SITE; 144 144 $current_site->path = $path = PATH_CURRENT_SITE; 145 145 146 if ( defined( 'BLOG_ID_CURRENT_SITE' ) ) 146 147 $current_site->blog_id = BLOG_ID_CURRENT_SITE; 147 148 elseif ( defined( 'BLOGID_CURRENT_SITE' ) ) // deprecated. -
wp-includes/ms-settings.php
if ( !isset( $current_site ) || !isset( $current_blog ) ) { 86 86 if ( '%siteurl%' == $destination ) 87 87 $destination = "http://" . $current_site->domain . $current_site->path; 88 88 } else { 89 $destination = 'http://' . $current_site->domain . $current_site-> path. 'wp-signup.php?new=' . str_replace( '.' . $current_site->domain, '', $domain );89 $destination = 'http://' . $current_site->domain . $current_site->wp_siteurl_subdir . 'wp-signup.php?new=' . str_replace( '.' . $current_site->domain, '', $domain ); 90 90 } 91 91 header( 'Location: ' . $destination ); 92 92 die(); -
wp-includes/rewrite.php
class WP_Rewrite { 1729 1729 <rewrite> 1730 1730 <rules>'; 1731 1731 } 1732 if ( !is_multisite() ) { 1733 $rules .= ' 1734 <rule name="wordpress" patternSyntax="Wildcard"> 1735 <match url="*" /> 1736 <conditions> 1737 <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 1738 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 1739 </conditions> 1740 <action type="Rewrite" url="index.php" /> 1741 </rule>'; 1742 } else { 1743 if (is_subdomain_install()) { 1744 $rules .= ' 1745 <rule name="WordPress Rule 1" stopProcessing="true"> 1746 <match url="^index\.php$" ignoreCase="false" /> 1747 <action type="None" /> 1748 </rule>'; 1749 if ( get_site_option( 'ms_files_rewriting' ) ) { 1750 $rules .= ' 1751 <rule name="WordPress Rule for Files" stopProcessing="true"> 1752 <match url="^files/(.+)" ignoreCase="false" /> 1753 <action type="Rewrite" url="wp-includes/ms-files.php?file={R:1}" appendQueryString="false" /> 1754 </rule>'; 1755 } 1756 $rules .= ' 1757 <rule name="WordPress Rule 2" stopProcessing="true"> 1758 <match url="^" ignoreCase="false" /> 1759 <conditions logicalGrouping="MatchAny"> 1760 <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" /> 1761 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" /> 1762 </conditions> 1763 <action type="None" /> 1764 </rule> 1765 <rule name="WordPress Rule 3" stopProcessing="true"> 1766 <match url="." ignoreCase="false" /> 1767 <action type="Rewrite" url="index.php" /> 1768 </rule>'; 1769 } else { 1770 $rules .= ' 1771 <rule name="WordPress Rule 1" stopProcessing="true"> 1772 <match url="^index\.php$" ignoreCase="false" /> 1773 <action type="None" /> 1774 </rule>'; 1775 if ( get_site_option( 'ms_files_rewriting' ) ) { 1776 $rules .= ' 1777 <rule name="WordPress Rule for Files" stopProcessing="true"> 1778 <match url="^([_0-9a-zA-Z-]+/)?files/(.+)" ignoreCase="false" /> 1779 <action type="Rewrite" url="wp-includes/ms-files.php?file={R:2}" appendQueryString="false" /> 1780 </rule>'; 1781 } 1782 $rules .= ' 1783 <rule name="WordPress Rule 2" stopProcessing="true"> 1784 <match url="^([_0-9a-zA-Z-]+/)?wp-admin$" ignoreCase="false" /> 1785 <action type="Redirect" url="{R:1}wp-admin/" redirectType="Permanent" /> 1786 </rule> 1787 <rule name="WordPress Rule 3" stopProcessing="true"> 1788 <match url="^" ignoreCase="false" /> 1789 <conditions logicalGrouping="MatchAny"> 1790 <add input="{REQUEST_FILENAME}" matchType="IsFile" ignoreCase="false" /> 1791 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" ignoreCase="false" /> 1732 1733 $rules .= ' 1734 <rule name="wordpress" patternSyntax="Wildcard"> 1735 <match url="*" /> 1736 <conditions> 1737 <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" /> 1738 <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" /> 1792 1739 </conditions> 1793 <action type="None" /> 1794 </rule> 1795 <rule name="WordPress Rule 4" stopProcessing="true"> 1796 <match url="^([_0-9a-zA-Z-]+/)?(wp-(content|admin|includes).*)" ignoreCase="false" /> 1797 <action type="Rewrite" url="{R:1}" /> 1798 </rule> 1799 <rule name="WordPress Rule 5" stopProcessing="true"> 1800 <match url="^([_0-9a-zA-Z-]+/)?(.*\.php)$" ignoreCase="false" /> 1801 <action type="Rewrite" url="{R:2}" /> 1802 </rule> 1803 <rule name="WordPress Rule 6" stopProcessing="true"> 1804 <match url="." ignoreCase="false" /> 1805 <action type="Rewrite" url="index.php" /> 1806 </rule>'; 1807 } 1808 } 1740 <action type="Rewrite" url="index.php" /> 1741 </rule>'; 1742 1809 1743 if ( $add_parent_tags ) { 1810 1744 $rules .= ' 1811 1745 </rules>