• Problem: Various core wordpres functions call is_ssl() when generating uri’s – in particular all of the get_theme related functions do this. If a site is available on https and http then pages may be generated unpredictably with https:// or https:// internal links to stylesheets etc. A similar thing happens when behind amazon load balancers that send SSL traffic to port 80 except in this case the uri is always http: even when it should be https

    a page generated with https:// that gets cached and served to an a https: viewer will break due to non secure elements.

    Solution add to functions.php in your theme (or better still fold into wp_supercache)

    //Make URI's protocol agnostic
    add_filter( 'theme_root_uri', 'my_theme_root_uri');
    
    /**
     * Make uri's protocol agniostic
     **/
    function my_theme_root_uri($uri) {
    	return preg_replace("@^https?:@i","",$uri);
    }

    This will make all uri’s returned by theme_root_uri() protocol agnostic allowing the page to work in either http or https (example “https://host.com/whatver” becomes “//host.com/whatever”).

    See https://stackoverflow.com/questions/550038/is-it-valid-to-replace-http-with-in-a-script-src-http for more on uri’s without a protocol part.

    https://www.ads-software.com/extend/plugins/wp-super-cache/

  • The topic ‘https vs http cache confusion – with solution’ is closed to new replies.