Bei mir hat sich das aus dem über Jahre wuchernden Wildwuchs ergeben. Zuerst reines HTTP, auch für beschränkte Bereiche. Später dann teilweise HTTPS (mit Server-Variablen-Abfrage) und geteiltem Zertifikat, bis der Provider dann ein "richtiges" zur Verfügung gestellt hat. Nach Umstellung ganz auf HTTPS kam dann halt die Überprüfung des Ports in die .htaccess, zusätzlich.
Jedenfalls ersetze ich jetzt
RewriteCond %{SERVER_PORT} !^443$
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
durch
RewriteCond %{HTTPS} !=on
RewriteRule (.*) https://%{HTTP_HOST}/$1 [R=301,L]
und spare mir die PHP-Abfrage. In meinen Logs habe ich allerdings schon lange keinen Zugriffsversuch mehr über HTTP gesehen (außer gelegentlich aus der finsteren Ecke).