Forcer SSL dans .htaccess ou dans mon code PHP, entraîne une erreur de boucle de redirection

Je tente de forcer l’utilisation de HTTPS, j’espère accomplir cela avec le fichier .htaccess, mais j’ai également essayé d’utiliser du code. J’utilise le framework Zend et j’ai essayé d’utiliser ce code dans le Bootstrap.php pour tenter d’éviter une règle conflictuelle ou des parameters erronés sur le serveur HTTP.

 public function _initForceSSL() { if (!isset($_SERVER['HTTPS']) || $_SERVER['HTTPS'] !== 'on') { if(!headers_sent()) { header("Status: 301 Moved Permanently"); header(sprintf( 'Location: https://%s%s', $_SERVER['HTTP_HOST'], $_SERVER['REQUEST_URI'] )); exit(); } } } 

Cela produit les mêmes résultats que si je le faisais …

 RewriteCond %{SERVER_PORT} 80 RewriteRule ^(.*)$ https://mydomain.tld/$1 [R,L] 

dans mon fichier .htaccess. Je reçois la même plainte de boucle de redirection sur mon dev local. serveur (où j’ai un access complet à tous les parameters, la stack habituelle de LAMP c’est). Aussi, mêmes résultats sur le PHPCloud de Zend (utilisant le serveur Zend).

Voici mon fichier .htacces complet, j’ai essayé d’utiliser les règles à différents endroits …

  setEnv APPLICATION_ENV development #setEnv APPLICATION_ENV production #setEnv APPLICATION_ENV testing RewriteEngine On #sortinged it here RewriteCond %{REQUEST_FILENAME} -s [OR] RewriteCond %{REQUEST_FILENAME} -l [OR] RewriteCond %{REQUEST_FILENAME} -d #sortinged here RewriteBase / RewriteRule ^.*$ - [NC,L] RewriteRule ^.*$ index.php [NC,L] #sortinged it here too... 

Je ne peux pas sembler comprendre ce que je fais mal, j’ai essayé quelques autres méthodes «populaires» pour une réécriture aussi. De plus, si j’utilise mon nom de domaine réel dans le RewriteRule.

Ma seule exigence est que l’application entière ne soit PAS disponible via une connexion non sécurisée (SSL uniquement).

Si vous avez access au fichier vhost, vous pouvez le faire:

  ServerName example.com RewriteEngine on RewriteCond %{SERVER_PORT} ^80$ RewriteRule ^(.*)$ https://%{SERVER_NAME}$1 [L,R]   ServerName example.com ...