WordPress Version: 6.1
/**
* Deletes WordPress rewrite rule from web.config file if it exists there.
*
* @since 2.8.0
*
* @param string $filename Name of the configuration file.
* @return bool
*/
function iis7_delete_rewrite_rule($filename)
{
// If configuration file does not exist then rules also do not exist, so there is nothing to delete.
if (!file_exists($filename)) {
return true;
}
if (!class_exists('DOMDocument', false)) {
return false;
}
$doc = new DOMDocument();
$doc->preserveWhiteSpace = false;
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 ($rules->length > 0) {
$child = $rules->item(0);
$parent = $child->parentNode;
$parent->removeChild($child);
$doc->formatOutput = true;
saveDomDocument($doc, $filename);
}
return true;
}