WordPress.org

Make WordPress Core

Ticket #10386: 10386-whale.patch

File 10386-whale.patch, 5.9 KB (added by peaceablewhale, 5 years ago)
  • wp-admin/includes/misc.php

     
    154154        // Using win_is_writable() instead of is_writable() because of a bug in Windows PHP 
    155155        if ( ( ! file_exists($web_config_file) && win_is_writable($home_path) && $wp_rewrite->using_mod_rewrite_permalinks() ) || win_is_writable($web_config_file) ) { 
    156156                if ( iis7_supports_permalinks() ) { 
    157                         $rule = $wp_rewrite->iis7_url_rewrite_rules(); 
     157                        $rule = $wp_rewrite->iis7_url_rewrite_rules(false, '', ''); 
    158158                        if ( ! empty($rule) ) { 
    159159                                return iis7_add_rewrite_rule($web_config_file, $rule); 
    160160                        } else { 
     
    587587        $rule_fragment->appendXML($rewrite_rule); 
    588588        $rules_node->appendChild($rule_fragment); 
    589589 
     590        $doc->encoding = "UTF-8"; 
    590591        $doc->formatOutput = true; 
    591592        saveDomDocument($doc, $filename); 
    592593 
  • wp-admin/options-permalink.php

     
    222222</p> 
    223223  </form> 
    224224<?php if ($iis7_permalinks) : 
    225         if ( isset($_POST['submit']) && $permalink_structure && ! $usingpi && ! $writable ) : ?> 
     225        if ( isset($_POST['submit']) && $permalink_structure && ! $usingpi && ! $writable ) :  
     226                if ( file_exists($home_path . 'web.config') ) : ?> 
    226227<p><?php _e('If your <code>web.config</code> file were <a href="http://codex.wordpress.org/Changing_File_Permissions">writable</a>, we could do this automatically, but it isn&#8217;t so this is the url rewrite rule you should have in your <code>web.config</code> file. Click in the field and press <kbd>CTRL + a</kbd> to select all. Then insert this rule inside of the <code>/&lt;configuration&gt;/&lt;system.webServer&gt;/&lt;rewrite&gt;/&lt;rules&gt;</code> element in <code>web.config</code> file.') ?></p> 
    227228<form action="options-permalink.php" method="post"> 
    228229<?php wp_nonce_field('update-permalink') ?> 
    229         <p><textarea rows="10" class="large-text readonly" name="rules" id="rules" readonly="readonly"><?php echo esc_html($wp_rewrite->iis7_url_rewrite_rules()); ?></textarea></p> 
     230        <p><textarea rows="9" class="large-text readonly" name="rules" id="rules" readonly="readonly"><?php echo esc_html($wp_rewrite->iis7_url_rewrite_rules()); ?></textarea></p> 
    230231</form> 
    231232<p><?php _e('If you temporarily make your <code>web.config</code> file writable for us to generate rewrite rules automatically, do not forget to revert the permissions after rule has been saved.')  ?></p> 
     233                <?php else : ?> 
     234<p><?php _e('If the root directory of your site were <a href="http://codex.wordpress.org/Changing_File_Permissions">writable</a>, we could do this automatically, but it isn&#8217;t so this is the url rewrite rule you should have in your <code>web.config</code> file. Create a new file, called <code>web.config</code> in the root directory of your site. Click in the field and press <kbd>CTRL + a</kbd> to select all. Then insert this code into the <code>web.config</code> file.') ?></p> 
     235<form action="options-permalink.php" method="post"> 
     236<?php wp_nonce_field('update-permalink') ?> 
     237        <p><textarea rows="18" class="large-text readonly" name="rules" id="rules" readonly="readonly"><?php echo esc_html($wp_rewrite->iis7_url_rewrite_rules(true)); ?></textarea></p> 
     238</form> 
     239<p><?php _e('If you temporarily make your site&#8217;s root directory writable for us to generate the <code>web.config</code> file automatically, do not forget to revert the permissions after the file has been created.')  ?></p>                     
     240                <?php endif; ?> 
    232241        <?php endif; ?> 
    233242<?php else : 
    234243        if ( $permalink_structure && ! $usingpi && ! $writable ) : ?> 
  • wp-includes/rewrite.php

     
    17151715         * 
    17161716         * @return string 
    17171717         */ 
    1718         function iis7_url_rewrite_rules(){ 
     1718        function iis7_url_rewrite_rules($add_parent_tags = false, $indent = "  ", $end_of_line = "\n") { 
    17191719 
    17201720                if ( ! $this->using_permalinks()) { 
    17211721                        return ''; 
    17221722                } 
    1723                 $rules  = "<rule name=\"wordpress\" patternSyntax=\"Wildcard\">\n"; 
    1724                 $rules .= "     <match url=\"*\" />\n"; 
    1725                 $rules .= "     <conditions>\n"; 
    1726                 $rules .= "             <add input=\"{REQUEST_FILENAME}\" matchType=\"IsFile\" negate=\"true\" />\n"; 
    1727                 $rules .= "             <add input=\"{REQUEST_FILENAME}\" matchType=\"IsDirectory\" negate=\"true\" />\n"; 
    1728                 $rules .= "     </conditions>\n"; 
    1729                 $rules .= "     <action type=\"Rewrite\" url=\"index.php\" />\n"; 
    1730                 $rules .= "</rule>"; 
     1723                 
     1724                $rules = ''; 
     1725                $extra_indent = ''; 
     1726                if ( $add_parent_tags ) { 
     1727                        $rules .= "<configuration>".$end_of_line; 
     1728                        $rules .= $indent."<system.webServer>".$end_of_line; 
     1729                        $rules .= $indent.$indent."<rewrite>".$end_of_line; 
     1730                        $rules .= $indent.$indent.$indent."<rules>".$end_of_line; 
     1731                        $extra_indent = $indent.$indent.$indent.$indent; 
     1732                } 
     1733                 
     1734                $rules .= $extra_indent."<rule name=\"wordpress\" patternSyntax=\"Wildcard\">".$end_of_line; 
     1735                $rules .= $extra_indent.$indent."<match url=\"*\" />".$end_of_line; 
     1736                $rules .= $extra_indent.$indent.$indent."<conditions>".$end_of_line; 
     1737                $rules .= $extra_indent.$indent.$indent.$indent."<add input=\"{REQUEST_FILENAME}\" matchType=\"IsFile\" negate=\"true\" />".$end_of_line; 
     1738                $rules .= $extra_indent.$indent.$indent.$indent."<add input=\"{REQUEST_FILENAME}\" matchType=\"IsDirectory\" negate=\"true\" />".$end_of_line; 
     1739                $rules .= $extra_indent.$indent.$indent."</conditions>".$end_of_line; 
     1740                $rules .= $extra_indent.$indent."<action type=\"Rewrite\" url=\"index.php\" />".$end_of_line; 
     1741                $rules .= $extra_indent."</rule>"; 
     1742                 
     1743                if ( $add_parent_tags ) { 
     1744                        $rules .= $end_of_line.$indent.$indent.$indent."</rules>".$end_of_line; 
     1745                        $rules .= $indent.$indent."</rewrite>".$end_of_line; 
     1746                        $rules .= $indent."</system.webServer>".$end_of_line; 
     1747                        $rules .= "</configuration>"; 
     1748                } 
    17311749 
    17321750                $rules = apply_filters('iis7_url_rewrite_rules', $rules); 
    17331751