How to determine if a site is running Pressflow

There are a few ways to tell if you're looking at a site that is using Pressflow for Drupal, including the following:

JavaScript

By default, Drupal's Expires header is set to November 19, 1978. Pressflow modifies this value to March 11, 1984.

You can use a small JavaScript script to detect whether a site is running Pressflow or regular Drupal core by examining a site's Expires header. This works for any site, regardless of whether or not they're hosted on Acquia Cloud.

If you use Google Chrome, use the following process:

  1. Right-click the Omnibox (address bar) in Google Chrome, and then click Edit Search Engines.
  2. Scroll to the end of the Other Search Engines section, and then add a new entry using the following values:
    • Add a new search engine - PressFlow check
    • Keyword - #pf
    • URL - Paste the JavaScript code from this article
  3. Click Done.
  4. Navigate to any site in Chrome, and enter #pf in the Omnibox.

    An alert will inform you whether this is Pressflow or regular Drupal.

If you're not using Chrome, use the JavaScript code as a plain Bookmarklet, which provides quick access to the Pressflow detection process.

JavaScript code

javascript:(function(){var xmlHttp=getXMLHttpObj();  if(xmlHttp==null){    alert('Failed to load XMLHTTP');    return;  }  var actual=getPageContent(xmlHttp,window.location.href);  switch(actual){    case'Sun, 19 Nov 1978 05:00:00 GMT':alert('Drupal');    break;    case'Sun, 11 Mar 1984 12:00:00 GMT':alert('Pressflow');    break;    default:alert('Other (Datestamp = "'+actual+'")');  }  function getPageContent(xmlHttp,url){    xmlHttp.open('GET',window.location.href,false);    xmlHttp.send('');    return xmlHttp.getResponseHeader("Expires");  }  function getXMLHttpObj(){    if(typeof(XMLHttpRequest)!='undefined')      return new XMLHttpRequest();    var axO=['Msxml2.XMLHTTP.6.0', 'Msxml2.XMLHTTP.4.0', 'Msxml2.XMLHTTP.3.0', 'Msxml2.XMLHTTP', 'Microsoft.XMLHTTP'];    for(var i=0;i<axO.length;i++){      try{        return new ActiveXObject(axO[i]);      }      catch(e){      }    }    return null;  }})()

Credit for this code snippet belongs to Matt Vance on GitHub.

You can also view the HTTP headers to look for Pressflow's Expires value of March 11, 1984, by using one of the various web development tools, including Firebug, Chrome or Safari web developer tools, and the ieHTTPHeaders plugin.

Codebase

If you have direct access to the codebase, it's easiest to just search the code for Pressflow references by using the following command from a command line:

grep "Pressflow" includes/common.inc

You can also use Drush to check if a particular cache header exists. In this example, @sitename.env is the drush alias for the site in question. If you're on the server for the site, you can omit that variable.

drush @sitename.env php-eval 'echo (function_exists("drupal_page_cache_header_external") ? "Pressflow" : "Drupal") . " " . VERSION . "\n";'

If it is a site using Pressflow, it will return something like Pressflow 6.28. If it's standard Drupal, it will show something more like Drupal 7.21.

Contact supportStill need assistance? Contact Acquia Support