iis7_rewrite_rule_exists()WP 2.8.0

Checks if rewrite rule for WordPress already exists in the IIS 7+ configuration file.

No Hooks.

Return

true|false.

Usage

iis7_rewrite_rule_exists( $filename );
$filename(string) (required)
The file path to the configuration file.

Changelog

Since 2.8.0 Introduced.

iis7_rewrite_rule_exists() code WP 6.6.2

function iis7_rewrite_rule_exists( $filename ) {
	if ( ! file_exists( $filename ) ) {
		return false;
	}

	if ( ! class_exists( 'DOMDocument', false ) ) {
		return false;
	}

	$doc = new DOMDocument();

	if ( $doc->load( $filename ) === false ) {
		return false;
	}

	$xpath = new DOMXPath( $doc );
	$rules = $xpath->query( '/configuration/system.webServer/rewrite/rules/rule[starts-with(@name,\'wordpress\')] | /configuration/system.webServer/rewrite/rules/rule[starts-with(@name,\'WordPress\')]' );

	if ( 0 === $rules->length ) {
		return false;
	}

	return true;
}