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

DDD
Libérer: 2024-10-27 11:50:02
original
113 Les gens l'ont consulté

Here are a few title options, focusing on the problem and solution:

Option 1 (Direct and concise):
How to Determine the Correct Site URL Protocol in PHP (http vs https)

Option 2 (Emphasizing the challenge):
PHP: Accurately Detecting Site URL Protocol (h

PHP Get Site URL Protocol - http vs https

Introduction au problème

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.

Implémentation de la fonction

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:// ».

Alternatives et préoccupations

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.

Implémentation améliorée

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>
Copier après la connexion

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!

source:php.cn
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!