WordPress.org

Make WordPress Core

Ticket #10386: 10386-whale.patch

File 10386-whale.patch, 5.9 KB (added by peaceablewhale, 9 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