Réponses:
$hostest une variable du module Core .
$ hôte
Cette variable est égale à la ligne Host dans l'en-tête de la requête ou au nom du serveur traitant la requête si l'en-tête Host n'est pas disponible.
Cette variable peut avoir une valeur différente de $ http_host dans de tels cas: 1) lorsque l'en-tête d'entrée Host est absent ou a une valeur vide, $ host est égal à la valeur de la directive server_name; 2) lorsque la valeur de Host contient le numéro de port, $ host n'inclut pas ce numéro de port. La valeur de $ host est toujours en minuscules depuis la 0.8.17.
$http_hostest également une variable du même module mais vous ne la trouverez pas avec ce nom car elle est définie de manière générique comme $http_HEADER( ref ).
$ http_HEADER
La valeur de l'en-tête de la requête HTTP HEADER lorsqu'il est converti en minuscules et avec les «tirets» convertis en «traits de soulignement», par exemple $ http_user_agent, $ http_referer ...;
En résumé:
$http_hostéquivaut toujours à l'en- HTTP_HOSTtête de la demande.$hostest égal $http_host, en minuscules et sans le numéro de port (si présent), sauf en cas d' HTTP_HOSTabsence ou de valeur vide . Dans ce cas, $hostégale la valeur de la server_namedirective du serveur qui a traité la requête.server_namedirectives. si vous avez une regex dans la première, cela devient le $host, et toutes sortes de choses laides peuvent se produire pendant les règles de réécriture.
$server_namevariable est-elle égale à la server_namevaleur de la directive ou au nom de serveur réel qui a été sélectionné s'il y avait plusieurs server_namedirectives?
$server_nameest toujours égal à la première valeur spécifiée avec la directive nom_serveur. Par exemple, avec server_name example.com one.example.com two.example.com;, $server_namesera toujours "example.com", quel que soit l'hôte spécifié par l'utilisateur . En fait, si vous n'en avez pas default_server, l'hôte peut être quelque chose de complètement différent (comme example.org).
server_namedéfini dans le bloc serveur actuel. si vous avez plusieursserver_names, seul le premier apparaîtra.