Maison > Article > développement back-end > Voici quelques options de titre, axées sur le problème et la solution : Option 1 (directe et concise) : Comment déterminer le protocole d'URL de site correct en PHP (http vs https) Option 2 (Soulignant le cha
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!