Update 26. Mai 2014: Der Server-Port für HTTPS-Verbindungen muss je nach Server-Konfiguration nicht zwingend 443 sein.

So lässt sich mit PHP bestimmen ob eine Website über HTTP oder HTTPS aufgerufen wird:

// HTTP / HTTPS bestimmen
if(!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS']!='off' or $_SERVER['SERVER_PORT']==443) $protocol='https';
else $protocol='http';