Switch language

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




wp_fix_server_vars [ WordPress Function ]

wp_fix_server_vars ( No parameters )
Access:
  • private
Defined at:



Fix $_SERVER variables for various setups.

Source


<?php
function wp_fix_server_vars() {
    global 
$PHP_SELF;

    
$default_server_values = array(
        
'SERVER_SOFTWARE' => '',
        
'REQUEST_URI' => '',
    );

    
$_SERVER array_merge$default_server_values$_SERVER );

    
// Fix for IIS when running with PHP ISAPI
    
if ( empty( $_SERVER['REQUEST_URI'] ) || ( php_sapi_name() != 'cgi-fcgi' && preg_match'/^Microsoft-IIS\//'$_SERVER['SERVER_SOFTWARE'] ) ) ) {

        
// IIS Mod-Rewrite
        
if ( isset( $_SERVER['HTTP_X_ORIGINAL_URL'] ) ) {
            
$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_ORIGINAL_URL'];
        }
        
// IIS Isapi_Rewrite
        
else if ( isset( $_SERVER['HTTP_X_REWRITE_URL'] ) ) {
            
$_SERVER['REQUEST_URI'] = $_SERVER['HTTP_X_REWRITE_URL'];
        } else {
            
// Use ORIG_PATH_INFO if there is no PATH_INFO
            
if ( !isset( $_SERVER['PATH_INFO'] ) && isset( $_SERVER['ORIG_PATH_INFO'] ) )
                
$_SERVER['PATH_INFO'] = $_SERVER['ORIG_PATH_INFO'];

            
// Some IIS + PHP configurations puts the script-name in the path-info (No need to append it twice)
            
if ( isset( $_SERVER['PATH_INFO'] ) ) {
                if ( 
$_SERVER['PATH_INFO'] == $_SERVER['SCRIPT_NAME'] )
                    
$_SERVER['REQUEST_URI'] = $_SERVER['PATH_INFO'];
                else
                    
$_SERVER['REQUEST_URI'] = $_SERVER['SCRIPT_NAME'] . $_SERVER['PATH_INFO'];
            }

            
// Append the query string if it exists and isn't null
            
if ( ! empty( $_SERVER['QUERY_STRING'] ) ) {
                
$_SERVER['REQUEST_URI'] .= '?' $_SERVER['QUERY_STRING'];
            }
        }
    }

    
// Fix for PHP as CGI hosts that set SCRIPT_FILENAME to something ending in php.cgi for all requests
    
if ( isset( $_SERVER['SCRIPT_FILENAME'] ) && ( strpos$_SERVER['SCRIPT_FILENAME'], 'php.cgi' ) == strlen$_SERVER['SCRIPT_FILENAME'] ) - ) )
        
$_SERVER['SCRIPT_FILENAME'] = $_SERVER['PATH_TRANSLATED'];

    
// Fix for Dreamhost and other PHP as CGI hosts
    
if ( strpos$_SERVER['SCRIPT_NAME'], 'php.cgi' ) !== false )
        unset( 
$_SERVER['PATH_INFO'] );

    
// Fix empty PHP_SELF
    
$PHP_SELF $_SERVER['PHP_SELF'];
    if ( empty( 
$PHP_SELF ) )
        
$_SERVER['PHP_SELF'] = $PHP_SELF preg_replace'/(\?.*)?$/'''$_SERVER["REQUEST_URI"] );
}
?>

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