예제 #1
0
 function test_with_alias_defined_should_change_url()
 {
     define('HTTPS_DOMAIN_ALIAS', 'example.seravo.fi');
     $url = 'http://www.example.com/example/path';
     $should_url = 'https://' . HTTPS_DOMAIN_ALIAS . '/example/path';
     $domains = ['example.com'];
     $this->assertEquals($should_url, hstda_rewrite_url($url, $domains));
 }
/**
 * Same as above, but handles all domains in a multisite
 */
function htsda_mu_https_domain_rewrite($url, $status = 0)
{
    // Rewrite only if the request is https, or the user is logged in
    // to preserve cookie integrity
    if (substr($url, 0, 5) == 'https' || function_exists('is_user_logged_in') && is_user_logged_in() && !(defined('DISABLE_FRONTEND_SSL') && DISABLE_FRONTEND_SSL)) {
        // these won't change during the request
        static $domains;
        if (!isset($domains)) {
            $blogs = wp_get_sites();
            // get info from wp_blogs table
            $domains = array();
            // map the domains here
            $domains[] = hstda_trim_url(parse_url(get_site_url(1), PHP_URL_HOST), 'www.');
            // main site home
            // special case for wpmu domain mapping plugin
            if (function_exists('domain_mapping_siteurl')) {
                $domains[] = hstda_trim_url(parse_url(domain_mapping_siteurl(false), PHP_URL_HOST), 'www.');
            }
            foreach ($blogs as $blog) {
                $domains[] = hstda_trim_url($blog['domain'], 'www.');
            }
            // dedupe domains
            $domains = array_unique($domains);
        }
        // Rewrite the $url
        $url = hstda_rewrite_url($url, $domains);
    }
    return $url;
}
/**
 * Same as above, but handles all domains in a multisite
 */
function htsda_mu_https_domain_rewrite($url, $status = 0)
{
    if (!is_string($url)) {
        // do nothing if $url is not a string
        // the customizer view seems to sometimes pass an empty array to this filter for some reason.
        // this would crash the entire plugin
        return $url;
    }
    // Rewrite only if the request is https, or the user is logged in
    // to preserve cookie integrity
    if (substr($url, 0, 5) == 'https' || function_exists('is_user_logged_in') && is_user_logged_in() && !(defined('DISABLE_FRONTEND_SSL') && DISABLE_FRONTEND_SSL)) {
        // these won't change during the request
        static $domains;
        if (!isset($domains)) {
            $args = array('limit' => null);
            // do not limit the number of results
            $blogs = wp_get_sites($args);
            // get info from wp_blogs table
            $domains = array();
            // map the domains here
            $domains[] = hstda_trim_url(parse_url(get_site_url(1), PHP_URL_HOST), 'www.');
            // main site home
            // special case for wpmu domain mapping plugin
            if (function_exists('domain_mapping_siteurl')) {
                $domains[] = hstda_trim_url(parse_url(domain_mapping_siteurl(false), PHP_URL_HOST), 'www.');
            }
            foreach ($blogs as $blog) {
                $domains[] = hstda_trim_url($blog['domain'], 'www.');
            }
            // dedupe domains
            $domains = array_unique($domains);
        }
        // Rewrite the $url
        $url = hstda_rewrite_url($url, $domains);
    }
    return $url;
}