La détermination du protocole d'URL actuel du site (http ou https) est essentielle pour garantir opérations de site Web sécurisées et cohérentes. Cependant, lors du développement local ou sans SSL, tester l'exactitude de ces fonctions peut s'avérer difficile.
La fonction fournie "siteURL" tente d'établir le protocole en fonction de la présence du Clé 'HTTPS' dans le tableau $_SERVER et sa valeur non vide ou 'off'. Alternativement, il vérifie si le « SERVER_PORT » est 443. Si l'une des conditions est remplie, il renvoie « https:// », sinon « http:// ».
En l'absence de SSL, déterminer avec précision le protocole nécessite d'examiner le tableau $_SERVER. Cependant, si SSL est actif, le serveur convertit automatiquement l'URL en https même si l'URL de la balise d'ancrage utilise http. Par conséquent, il peut sembler inutile de vérifier le protocole.
Pour résoudre ce problème, une implémentation améliorée est proposée en vérifiant les indicateurs de protocole HTTPS et HTTP dans $_SERVER tableau. Si l'une de ces conditions est remplie, la fonction renverra le protocole correct.
<code class="php">if (isset($_SERVER['HTTPS']) && ($_SERVER['HTTPS'] == 'on' || $_SERVER['HTTPS'] == 1) || isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') { $protocol = 'https://'; } else { $protocol = 'http://'; }</code>
Cette approche garantit l'exactitude dans les deux cas, que SSL soit activé ou non.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!