Switch language

wpseek.com
A WordPress-centric search engine for devs and theme authors




iis7_add_rewrite_rule [ WordPress Function ]

iis7_add_rewrite_rule ( $filename, $rewrite_rule )
Parameters:
  • (string) $filename The file path to the configuration file
  • (string) $rewrite_rule The XML fragment with URL Rewrite rule
Returns:
  • (bool)
Defined at:



Add WordPress rewrite rule to the IIS 7 configuration file.

Source


<?php
function iis7_add_rewrite_rule($filename$rewrite_rule) {
    if ( ! 
class_exists('DOMDocument') )
        return 
false;

    
// If configuration file does not exist then we create one.
    
if ( ! file_exists($filename) ) {
        
$fp fopen$filename'w');
        
fwrite($fp'<configuration/>');
        
fclose($fp);
    }

    
$doc = new DOMDocument();
    
$doc->preserveWhiteSpace false;

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

    
$xpath = new DOMXPath($doc);

    
// First check if the rule already exists as in that case there is no need to re-add it
    
$wordpress_rules $xpath->query('/configuration/system.webServer/rewrite/rules/rule[starts-with(@name,\'wordpress\')]');
    if ( 
$wordpress_rules->length )
        return 
true;

    
// Check the XPath to the rewrite rule and create XML nodes if they do not exist
    
$xmlnodes $xpath->query('/configuration/system.webServer/rewrite/rules');
    if ( 
$xmlnodes->length ) {
        
$rules_node $xmlnodes->item(0);
    } else {
        
$rules_node $doc->createElement('rules');

        
$xmlnodes $xpath->query('/configuration/system.webServer/rewrite');
        if ( 
$xmlnodes->length ) {
            
$rewrite_node $xmlnodes->item(0);
            
$rewrite_node->appendChild($rules_node);
        } else {
            
$rewrite_node $doc->createElement('rewrite');
            
$rewrite_node->appendChild($rules_node);

            
$xmlnodes $xpath->query('/configuration/system.webServer');
            if ( 
$xmlnodes->length ) {
                
$system_webServer_node $xmlnodes->item(0);
                
$system_webServer_node->appendChild($rewrite_node);
            } else {
                
$system_webServer_node $doc->createElement('system.webServer');
                
$system_webServer_node->appendChild($rewrite_node);

                
$xmlnodes $xpath->query('/configuration');
                if ( 
$xmlnodes->length ) {
                    
$config_node $xmlnodes->item(0);
                    
$config_node->appendChild($system_webServer_node);
                } else {
                    
$config_node $doc->createElement('configuration');
                    
$doc->appendChild($config_node);
                    
$config_node->appendChild($system_webServer_node);
                }
            }
        }
    }

    
$rule_fragment $doc->createDocumentFragment();
    
$rule_fragment->appendXML($rewrite_rule);
    
$rules_node->appendChild($rule_fragment);

    
$doc->encoding "UTF-8";
    
$doc->formatOutput true;
    
saveDomDocument($doc$filename);

    return 
true;
}
?>

Examples [ wp-snippets.com ]

Top Google zoekresultaten

Meer ...

Gebruikersdiscussies [ wordpress.org ]

0 User Note(s)

Nog geen één. Wees de eerste!

Nieuw toevoegen ...



HTML5 Powered with CSS3 / Styling, Performance & Integration, and Semantics