I have getting variable results from the $_SERVER['HTTP_HOST'] variable in the functions.php file of our child theme.

We are running WordPress 3.5.2 on NGINX with PageLines 2.4 as our parent theme and a handful of plugins that I can detail if necessary. Our virtual host is set to answer to:


As we have several private label subdomains that will change the branding of the site. www.salesgenie.com will be the generic domain but att.salesgenie.com is an example of a branded subdomain.

I need to be able to detect the subdomain the client calls with which I am trying to get with $_SERVER['HTTP_HOST']. The issue is that $_SERVER['HTTP_HOST'] is accurate the first time a client comes to their domain but reverts to the $_SERVER['SERVER_NAME'] value after that either on page reload or navigation to any other page. Any ideas why this might happen or how to work around it?

To test this I've got a function logging the $_SERVER['SERVER_NAME'] and $_SERVER['HTTP_HOST'] to a cookie called CMSCookie and you can test it by going to [cms.salesgenie.com][1] (the CNAME is working) and both variables will read cms.salesgenie.com. But if you modify your host file to point att.salesgenie.com at then you can test att.salesgenie.com and the cookie will be correct the first time you hit a page, but if you reload, both server name and host will be cms.salesgenie.com

  • WordPress only changes the value of HTTP_HOST in the \wp-includes\ms-settings.php file. Specifically, it strips the port if :80 or :443 are in the url. If your parent theme and the plugins are not changing this value, this may not be a WordPress question. Commented Aug 7, 2013 at 16:27
  • Well I'll copy our installation to our test environment and see if switching themes or disabling plugins does anything.
    – Robert
    Commented Aug 7, 2013 at 16:31
  • 2
    Alrighty then. It is a PageLines theme issue since when I switch to TwentyTwelve I get the proper value for HTTP_HOST.
    – Robert
    Commented Aug 7, 2013 at 18:36
  • I only scanned the code, but look a the result of pl_get_uri( true ); Commented Aug 7, 2013 at 21:04
  • It's behaving the same as HTTP_HOST. Fine on the first visit to the url, but then rest to SERVER_NAME after that.
    – Robert
    Commented Aug 8, 2013 at 18:26

1 Answer 1


As per the OP's comment:

It is a PageLines theme issue since when I switch to TwentyTwelve I get the proper value for HTTP_HOST

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.