+ /**
+ * Retrieve IIS7 URL Rewrite formatted rewrite rules to write to web.config file.
+ *
+ * Does not actually write to the web.config file, but creates the rules for
+ * the process that will.
+ *
+ * @since 2.8.0
+ * @access public
+ *
+ * @return string
+ */
+ function iis7_url_rewrite_rules($add_parent_tags = false, $indent = " ", $end_of_line = "\n") {
+
+ if ( ! $this->using_permalinks()) {
+ return '';
+ }
+
+ $rules = '';
+ $extra_indent = '';
+ if ( $add_parent_tags ) {
+ $rules .= "<configuration>".$end_of_line;
+ $rules .= $indent."<system.webServer>".$end_of_line;
+ $rules .= $indent.$indent."<rewrite>".$end_of_line;
+ $rules .= $indent.$indent.$indent."<rules>".$end_of_line;
+ $extra_indent = $indent.$indent.$indent.$indent;
+ }
+
+ $rules .= $extra_indent."<rule name=\"wordpress\" patternSyntax=\"Wildcard\">".$end_of_line;
+ $rules .= $extra_indent.$indent."<match url=\"*\" />".$end_of_line;
+ $rules .= $extra_indent.$indent.$indent."<conditions>".$end_of_line;
+ $rules .= $extra_indent.$indent.$indent.$indent."<add input=\"{REQUEST_FILENAME}\" matchType=\"IsFile\" negate=\"true\" />".$end_of_line;
+ $rules .= $extra_indent.$indent.$indent.$indent."<add input=\"{REQUEST_FILENAME}\" matchType=\"IsDirectory\" negate=\"true\" />".$end_of_line;
+ $rules .= $extra_indent.$indent.$indent."</conditions>".$end_of_line;
+ $rules .= $extra_indent.$indent."<action type=\"Rewrite\" url=\"index.php\" />".$end_of_line;
+ $rules .= $extra_indent."</rule>";
+
+ if ( $add_parent_tags ) {
+ $rules .= $end_of_line.$indent.$indent.$indent."</rules>".$end_of_line;
+ $rules .= $indent.$indent."</rewrite>".$end_of_line;
+ $rules .= $indent."</system.webServer>".$end_of_line;
+ $rules .= "</configuration>";
+ }
+
+ $rules = apply_filters('iis7_url_rewrite_rules', $rules);
+
+ return $rules;
+ }
+