WordPress Version: 6.1
/**
* Checks if rewrite rule for WordPress already exists in the IIS 7+ configuration file.
*
* @since 2.8.0
*
* @param string $filename The file path to the configuration file.
* @return bool
*/
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;
}