端口转发后 php 还能判断 host 吗

2015-09-12 22:03:17 +08:00
 holinhot

域名 a.com 指向 1.1.1.1:77 在( 1.1.1.1 上 77 端口)转发到 2.2.2.2:80
在 2.2.2.2:80 这个服务器上能判断域名 a.com 后面的端口号是多少吗 还是在 2.2.2.2:80 的看到的应该是 a.com:80 而不是 a.com:88 吗

1624 次点击
所在节点    问与答
3 条回复
raincious
2015-09-12 22:09:45 +08:00
HTTP_HOST 是 HTTP HOST 头的内容。

所以这得看你中间的那个 Proxy 怎么配置的。
ss098
2015-09-12 22:11:42 +08:00
主机头是属于 HTTP 协议部分,与端口转发无关,所以可以得到主机头。

不能看到用户实际访问的端口,因为端口转发的机器连接到被转发机器使用的不是监听的端口而是新分配的。

(究竟是 77 端口还是 88 端口啊)

在后端得到的是 80 端口。
holinhot
2015-09-14 11:09:53 +08:00
@ss098 <?php
$http_host = $_SERVER["HTTP_HOST"];
$exp = explode (":", $http_host );
$domain = $exp[0];
$port = $exp[1];

if ( $port == 1000 )
{
echo file_get_contents ('./1000.html');
}
if ( $port == 1001 )
{
echo file_get_contents ('./1001.html');
}这样是行啊

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/220253

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX