linux - nginx中$host、$http_host 、$server_name 这三个变量有什么不同
PHP中文网
PHP中文网 2017-04-17 13:45:47
[Linux讨论组]

比如下面一段配置

if (!-e $request_filename) {
    rewrite /admin$ $scheme://$host$uri/ permanent;
    rewrite ^(/[^/]+)?(/sp-.*) $2 last;
    rewrite ^(/[^/]+)?(/.*\.php) $2 last;
}

why would $http_host be more dangerous?

PHP中文网
PHP中文网

认证高级PHP讲师

全部回复(1)
PHP中文网

$host的值有可能变化,先取请求头的host,如果没有去取接受请求的那个server的名称
$server_name表示接受请求的那个server的名称
至于$http_host,官方文档也没有这个值, 是不是题主写错了。 我只发现$http_name
下面贴上官方文档对着三个变量的定义:
$host
in this order of precedence: host name from the request line, or host name from the “Host” request header field, or the server name matching a request
$http_name
arbitrary request header field; the last part of a variable name is the field name converted to lower case with dashes replaced by underscores
$server_name
name of the server which accepted a request

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号