nginx中$host、$http_host 、$server_name 这三个变量有什么不同

发布于 2022-09-01 21:15:51 字数 253 浏览 8 评论 0

比如下面一段配置

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?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

小…楫夜泊 2022-09-08 21:15:51

$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

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文