WP_Rewrite::iis7_url_rewrite_rules( bool $add_parent_tags = false ): string

Retrieves IIS7 URL Rewrite formatted rewrite rules to write to web.config file.

Description

Does not actually write to the web.config file, but creates the rules for the process that will.

Parameters

$add_parent_tagsbooloptional
Whether to add parent tags to the rewrite rule sets.

Default:false

Return

string IIS7 URL rewrite rule sets.

Source

	public function iis7_url_rewrite_rules( $add_parent_tags = false ) {
		if ( ! $this->using_permalinks() ) {
			return '';
		}
		$rules = '';
		if ( $add_parent_tags ) {
			$rules .= '<configuration>
	<system.webServer>
		<rewrite>
			<rules>';
		}

		$rules .= '
			<rule name="WordPress: ' . esc_attr( home_url() ) . '" patternSyntax="Wildcard">
				<match url="*" />
					<conditions>
						<add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
						<add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
					</conditions>
				<action type="Rewrite" url="index.php" />
			</rule>';

		if ( $add_parent_tags ) {
			$rules .= '
			</rules>
		</rewrite>
	</system.webServer>
</configuration>';
		}

		/**
		 * Filters the list of rewrite rules formatted for output to a web.config.
		 *
		 * @since 2.8.0
		 *
		 * @param string $rules Rewrite rules formatted for IIS web.config.
		 */
		return apply_filters( 'iis7_url_rewrite_rules', $rules );
	}

Hooks

apply_filters( ‘iis7_url_rewrite_rules’, string $rules )

Filters the list of rewrite rules formatted for output to a web.config.

Changelog

VersionDescription
2.8.0Introduced.

User Contributed Notes

You must log in before being able to contribute a note or feedback.